zoukankan      html  css  js  c++  java
  • sqlserver存储过程入门

    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.欢迎关注微信公众号

  • 相关阅读:
    msbuild error
    windows 切换 默认 jdk 版本
    CI MSBuild env 2
    CI MSBuild env 1
    mstsc 修改密码
    MVC MSBuild
    gitolite
    OpenCV Visual Studio
    程序员!这5种让人郁闷的程序注释方式千万要避开!
    C语言基础丨运算符之条件运算符(七)
  • 原文地址:https://www.cnblogs.com/mark-0001/p/11551360.html
Copyright © 2011-2022 走看看