sql2005存储过程等
Ⅰ sql2005中怎么查看数据库的执行过程,比如说那个表或者存储过程
SQL
Server查询分析器里有一个叫做”显示实际执行计划”的选项(位于”查询”下拉菜单中)。如果打开了这个选项,那么无论何时在查询并亮好分析器中运行一个查询,都会得到一个显示在单独窗键缓口的查询绝铅执行计划(以图形的格式)。这个执行计划就是描述了这个语句的执行过程.
此外,在SQL
Server
2005中,有3个命令可以用来查看关于SQL语句或批处理的查询执行计划的详细信息:SET
SHOWPLAN_ALL、SHOWPLAN_TEXT和SET
SHOWPLAN_XML。
Ⅱ 在sql2005中怎么查看存储过程
select * from sysobjects where type='P'
go
select text from syscomments where id=object_id('存储过程名称')
或者
右击数据库->展开->存储过程->展开...找到某个特定的存储过程
Ⅲ 在SQL中存储过程分为哪五类
1、目录存储过程
例如:sp_columns返回当前环境中可查询的指定表或视图的列信息。
sp_tables返回当前环境下可查询的对象的列表(任何可出现在FROM子句中的对象)。
2、复制类存储过程
例如:sp_addarticle创建项目并将其添加到发布中。此存储过程在发布服务器的发布数据库上执行。
3、安全管理类存储过程
例如:sp_addrole在当前数据库创建新的Microsoft SQL Server角色。
sp_password添加或更改Microsoft SQL Server登录的密码。
4、分布式查询存储过程
例如:sp_foreignkeys返回引用主键的外键,这些主键在链接服务器中的表上。
sp_primarykeys返回指定远程表的主键列,每个键列占一行。
5、扩展存储过程
例如:xp_sendmail向指定的收件人发送邮件和查询结果集附件。
xp_startmail启动SQL邮件客户端会话。
存储过程的特点
1、存储过程在服务器端运行,执行速度快。
2、存储过程执行一次后,其执行驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。
3、确保数据库的安全。使用存储过程可以完成所有的数据库操作。
4、降低网络负载,提高效率。
5、可以接受用户参数,亦可返回参数。
6、作为一种安全机制来充分利用:通过对执行某一存储过程的权限进行限制,能够实现对相应的数据的访问权限的限制,避免了非授权用户对数据的访问,保证了数据的安全。
Ⅳ 在SQL2005里,哪里看数据库的存储过程
先运行 SQL Server Management Studio -> 打开数据库 -> 打开胡碰“可编程性”->裤局谈 再打开“存储腊败过程”
Ⅳ 在sql2005数据库执行存储过程出现:关键字 'SET' 附近有语法错误。 怎么处理呀代码如下
换成
CREATE proc [dbo].[GetDataSet]
@TableList Varchar(1024)='*',--搜索表的字段,比如:’id,datatime,job‘,用逗号隔开
@TableName Varchar(100), --搜索的表名
@SelectWhere Varchar(1024)='',--搜索条件,这里不用写where,比如:job=’teacher‘and class='2'
@SelectOrderId Varchar(50),--表主键字段名。比如:id
@SelectOrder Varchar(200)='', --排序,可以使用多字段排序但主键字段必需在最前面.也可以不写,比如:order by class asc
@intPageNo int=1, --页号
@intPageSize int=10 ,--每页显示数
@RecordCount int OUTPUT --总记录数(存储过程输出参数)
as
declare @TmpSelect NVarchar(4000)
declare @Tmp NVarchar(4000)
declare @pagecount int
set nocount on--关闭计数
set @RecordCount=0
set @TmpSelect = 'select @RecordCount=count(*) from '+@TableName+' where '+@SelectWhere
execute sp_executesql
@TmpSelect, --执行上面的sql语句
N'@RecordCount int OUTPUT' , --执行输出数据的sql语句,output出总记录数
@RecordCount OUTPUT
if (@RecordCount = 0) --如果没有贴子,则返回零
return 0
set @pagecount = @RecordCount/@intPageSize
if(@RecordCount%@intPageSize>0)
set @pagecount=@pagecount+1
if(@pagecount<=0)
set @pagecount=1
if(@intPageNo>@pagecount)
set @intPageNo=@pagecount
/*判断页数是否正确*/
--if (@intPageNo - 1) * @intPageSize > @RecordCount --页号大于总页数,返回错误
--set @intPageNo=@pagecount
set nocount off--打开计数
if @SelectWhere != ''
begin
set @TmpSelect = 'select top '+str(@intPageSize)+' '+@TableList+' from '+@TableName+' where '+@SelectOrderId+' not in(select top '+str((@intPageNo-1)*@intPageSize)+' '+@SelectOrderId+' from '+@TableName+' where '+@SelectWhere +' '+@SelectOrder+') and '+@SelectWhere +' '+@SelectOrder
end
else
begin
set @TmpSelect = 'select top '+str(@intPageSize)+' '+@TableList+' from '+@TableName+' where '+@SelectOrderId+' not in(select top '+str((@intPageNo-1)*@intPageSize)+' '+@SelectOrderId+' from '+@TableName+''+@SelectOrder+') '+@SelectOrder
end
execute sp_executesql @TmpSelect
return(@@rowcount)
GO