经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
sqlserver存储过程入门
来源:cnblogs  作者:一度虚伪  时间:2019/9/20 9:25:17  对本文有异议

sqlserver存储过程入门

1. 输入/输出参数定义

  1. @object_name varchar(50) //定义一个varchar类型的输入参数
  2. @object_index int
  3. @isUpdate int =0 output //定义一个输出参数

2.游标使用步骤

  1. 1、定义游标
  2. DECLARE cur_objsName CURSOR for select name from tb_user;
  3. 2、打开游标
  4. OPEN cur_objsName;
  5. 3、提取游标数据,进行业务处理
  6. while @@fetch_status = 0 --如果上一次操作成功则继续循环
  7. begin
  8. update tb_user set calss='三年级5班'
  9. FETCH NEXT FROM cur_objsName INTO
  10. end
  11. 4、关闭游标
  12. CLOSE cur_objsName;
  13. 5、释放游标
  14. deallocate cur_objsName;

3.简单示例

生产环境中会需要对软件的版本进行升级,会相应的升级数据库。当老版本软件退役,新版本软件上线时。会根据数据表结构的更新来进行数据迁移。
示例:根据输入对象名称,和列名,判断表对象结构是否进行了更新
  1. set ANSI_NULLS ON
  2. set QUOTED_IDENTIFIER ON
  3. GO
  4. -- =============================================
  5. -- Author: <Author,,Name>
  6. -- Create date: <Create Date,,>
  7. -- Description: 判断表对象结构是否进行了更新
  8. -- =============================================
  9. alter PROCEDURE [dbo].[getIsUpdate]
  10. @object_name varchar(50),
  11. @contrast_column_name varchar(50),
  12. @isUpdate int =0 output -- 1= 是, 0=否
  13. AS
  14. BEGIN
  15. -----------定义游标----------------
  16. DECLARE cur_objsName CURSOR for select name from sys.all_columns where object_id = object_id(@object_name);
  17. declare @column_name varchar(50)
  18. -----------打开游标----------------
  19. OPEN cur_objsName;
  20. -----------------从游标里取出数据赋值到我们刚才声明的变量中(移动游标指向到第一条数据,提取第一条数据存放在变量中)
  21. FETCH NEXT FROM cur_objsName INTO @column_name
  22. --判断游标的状态
  23. -- 0 fetch语句成功
  24. ---1 fetch语句失败或此行不在结果集中
  25. ---2 被提取的行不存在
  26. while @@fetch_status = 0 --如果上一次操作成功则继续循环
  27. begin
  28. if @contrast_column_name=@column_name
  29. set @isUpdate =1
  30. FETCH NEXT FROM cur_objsName INTO @column_name
  31. end
  32. END
  33. -----------关闭游标----------------
  34. CLOSE cur_objsName;
  35. -----------释放游标----------------
  36. deallocate cur_objsName;

3.1SQLserver2005企业管理器中执行存储过程

1、执行存储过程

2、填写输入参数

3、查看查询结果

4.powerbuilder中调用存储过程

  1. int returnValue
  2. Declare stu_getIsUpdate Procedure For getIsUpdate // 定义过程调用
  3. @object_name='tb_user', @contrast_column_name='faction',
  4. @isUpdate=0 output;
  5. Execute stu_getIsUpdate ;// 执行过程,这里是不需要其他参数的
  6. If SQLCA.SQLCode <> 0 Then // 调用过程出现错误处理
  7. messagebox('提示','数据库升级时出现错误:getIsUpdate........')
  8. return
  9. End If
  10. Fetch stu_getIsUpdate Into :returnValue;
  11. // 获取出参值,也就是OUT的变量,如果没有out类型的变量,这句也就不需要了
  12. If SQLCA.SQLCode <> 0 Then // 获取数据出现错误处理
  13. messagebox('提示','数据库升级时出现错误:getIsUpdate........')
  14. return
  15. End If
  16. Close stu_getIsUpdate ;
  17. if returnValue=0 then
  18. //根据存储过程返回值,来执行相应业务逻辑
  19. end if

5.使用Visual Studio 进行存储过程的调试

1、打开visual studio 2013,单击“视图”,选择“服务器资源管理器”。

2、右键单击“数据连接”,选择“添加连接”

3、在弹出的窗口中选择“Microsoft SQL Server”或者“Microsoft SQL Server数据库文件”

4、在第三步基础上进行配置,这一步根据第三步选择选项不同,进行配置的内容不同,但都比较简单,不做描述。

5、添加连接完成之后,点击“存储过程”,选择你要调试的存储过程,右键单击,选择“执行”,在弹出窗口中输入相应参数(如果有的话)

6、在打开的选项卡窗口中点击绿色按钮右边的下拉按钮,选择“使用调试器执行”,开始调试。

7、调试时,可以按F11或者F10进行步进或者过程进,进行调试,调试时把鼠标放到变量上即可查看变量的值

简单示例

5.欢迎关注微信公众号

原文链接:http://www.cnblogs.com/mark-0001/p/11551360.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号