
/ /
1. 如何调试存储过程?
存储过程定义: 存储常用或非常复杂的存储,预先写在语句中并以指定名称存储,然后在将来将被调用以提供与定义的存储过程相同的服务,
只需调用execute即可自动完成命令.
SQL存储过程的优点:
1. 存储过程仅在创建时进行编译. 将来,不需要每次都重新编译存储过程. 通常,SQL语句在每次执行时都会进行编译,因此使用存储过程可以提高执行的速度.
2. 在上执行复杂操作时(例如在多个表上执行更新,插入,查询,删除时),可以将此复杂操作与存储过程打包在一起,并与提供的事务处理结合使用.
3. 存储过程可以重复使用,可以减少开发人员的工作量
4. 高度安全,您可以设置只有该用户有权使用指定的存储过程
执行存储过程: exec过程名称参数值
存储过程的简单语法: 创建过程过程名称
[@ parameter data_type] [输出]
[with] {重新编译|加密}
为
sql_statement

示例1: 使用学生
去
创建proc query_studentinfo
为
从a_studentinfo中选择*
exec query_studentinfo
示例2:
创建proc insert_studentinfo
@ param1字符(10),@ param2字符(20),@ param3字符(2),@ param4字符(18),@ param5 int,@ param6字符(10),@ param7字符(20),@ param8 char(20),@ param9 int
输出
为
插入a_studentinfo(sno,sname,性别,cardid,出生年份,班级,省份,入学人数)值
(@ param1,@ param2,@ param3,@ param4,@ param5,@ param6,@ param7,@ param8)
select @ param9 => a_studentinfo中的最大值(年份(getdate())-出生年)
打印“最大出生日期为” +转换(varchar,@ param9)

去
声明@maxbirth int
exec insert_studentinfo'0002345','刘老','女性','12233454244',1987sql调试存储过程,'0003','北京','2009-12-3',@ maxbirth输出
选择@最大出生人数
去
示例3:
创建proc query_studentinfo1
@Rowcount int = 0输出
为
开始
选择*来自a_studentinfo
设置@Rowcount = @@ ROWCOUNT
结束
去
DECLARE @return_value int,

@MyOutput int
@运行时日期时间
set @ runtime = getdate()
EXEC @return_value = query_studentinfo1 @Rowcount = @MyOutput输出
选择[语句执行时间(ms)] = datediff(ms,@ runtime,getdate())
选择@MyOutput作为“输出值”
SELECT'返回值'= @return_value
示例4:
创建proc insert_studentinfo2
@ param1字符(10),@ param2字符(20),@ param3字符(2),@ param4字符(18),@ param5 int,@ param6字符(10),@ param7字符(20),@ param8 char(20),@ param9 int输出
为
开始
声明@ error1 int
插入a_studentinfo(sno,sname,性别,cardid,出生年份,班级,省份,入学人数)值
(@ param1,@ param2sql调试存储过程,@ param3,@ param4,@ param5,@ param6,@ param7,@ param8)
设置@ error1 = @@错误
打印'错误号为: '+转换(varchar,@ error1)
从a_studentinfo中选择@ param9 =最大值(年份(getdate())-出生年)
如果@ error1 = 0
打印“成功插入”
其他
打印“插入失败”
结束
存储过程调试方法: 在存储过程中添加一条print语句以输出一个临时值,例如示例2中的print语句
例如,如果您想知道执行语句的执行效率,请在示例3中声明@runtime datetime.
在执行语句之前添加set @ runtime = getdate()
在语句执行后添加选择[语句执行时间(ms)] = datediff(ms,@ runtime,getdate())
例如,如果您想知道核心语句是否已成功执行,请在示例4中声明@ error1 int
执行语句后添加seterror1 = @@错误
当前,中间变量值或SQL语句用于插入另一个临时表中,并通过临时表查看结果. 这些临时表都使用test_stored过程名称_临时表名称.
标签:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-154216-1.html
哈哈
回归了终于
对敢于入侵我领土