sqlserver存储过程入门
程序员文章站
2022-05-03 10:39:56
sqlserver存储过程入门 1. 输入/输出参数定义 @object_name varchar(50) //定义一个varchar类型的输入参数 @object_index int @isUpdate int =0 output //定义一个输出参数 2.游标使用步骤 1、定义游标 DECLAR ......
sqlserver存储过程入门
1. 输入/输出参数定义
@object_name varchar(50) //定义一个varchar类型的输入参数 @object_index int @isupdate int =0 output //定义一个输出参数
2.游标使用步骤
1、定义游标 declare cur_objsname cursor for select name from tb_user; 2、打开游标 open cur_objsname; 3、提取游标数据,进行业务处理 while @@fetch_status = 0 --如果上一次操作成功则继续循环 begin update tb_user set calss='三年级5班' fetch next from cur_objsname into end 4、关闭游标 close cur_objsname; 5、释放游标 deallocate cur_objsname;
3.简单示例
生产环境中会需要对软件的版本进行升级,会相应的升级数据库。当老版本软件退役,新版本软件上线时。会根据数据表结构的更新来进行数据迁移。
示例:根据输入对象名称,和列名,判断表对象结构是否进行了更新
set ansi_nulls on set quoted_identifier on go -- ============================================= -- author: <author,,name> -- create date: <create date,,> -- description: 判断表对象结构是否进行了更新 -- ============================================= alter procedure [dbo].[getisupdate] @object_name varchar(50), @contrast_column_name varchar(50), @isupdate int =0 output -- 1= 是, 0=否 as begin -----------定义游标---------------- declare cur_objsname cursor for select name from sys.all_columns where object_id = object_id(@object_name); declare @column_name varchar(50) -----------打开游标---------------- open cur_objsname; -----------------从游标里取出数据赋值到我们刚才声明的变量中(移动游标指向到第一条数据,提取第一条数据存放在变量中) fetch next from cur_objsname into @column_name --判断游标的状态 -- 0 fetch语句成功 ---1 fetch语句失败或此行不在结果集中 ---2 被提取的行不存在 while @@fetch_status = 0 --如果上一次操作成功则继续循环 begin if @contrast_column_name=@column_name set @isupdate =1 fetch next from cur_objsname into @column_name end end -----------关闭游标---------------- close cur_objsname; -----------释放游标---------------- deallocate cur_objsname;
3.1sqlserver2005企业管理器中执行存储过程
1、执行存储过程
2、填写输入参数
3、查看查询结果
4.powerbuilder中调用存储过程
int returnvalue declare stu_getisupdate procedure for getisupdate // 定义过程调用 @object_name='tb_user', @contrast_column_name='faction', @isupdate=0 output; execute stu_getisupdate ;// 执行过程,这里是不需要其他参数的 if sqlca.sqlcode <> 0 then // 调用过程出现错误处理 messagebox('提示','数据库升级时出现错误:getisupdate........') return end if fetch stu_getisupdate into :returnvalue; // 获取出参值,也就是out的变量,如果没有out类型的变量,这句也就不需要了 if sqlca.sqlcode <> 0 then // 获取数据出现错误处理 messagebox('提示','数据库升级时出现错误:getisupdate........') return end if close stu_getisupdate ; if returnvalue=0 then //根据存储过程返回值,来执行相应业务逻辑 end if
5.使用visual studio 进行存储过程的调试
1、打开visual studio 2013,单击“视图”,选择“服务器资源管理器”。
2、右键单击“数据连接”,选择“添加连接”
3、在弹出的窗口中选择“microsoft sql server”或者“microsoft sql server数据库文件”
4、在第三步基础上进行配置,这一步根据第三步选择选项不同,进行配置的内容不同,但都比较简单,不做描述。
5、添加连接完成之后,点击“存储过程”,选择你要调试的存储过程,右键单击,选择“执行”,在弹出窗口中输入相应参数(如果有的话)
6、在打开的选项卡窗口中点击绿色按钮右边的下拉按钮,选择“使用调试器执行”,开始调试。
7、调试时,可以按f11或者f10进行步进或者过程进,进行调试,调试时把鼠标放到变量上即可查看变量的值
简单示例
5.欢迎关注微信公众号
上一篇: 使用预定义的action值启动系统应用
下一篇: C# 判断是不是合法的16进制字符串