SQL Server—T-sql存储过程详解

  • 存储过程

  • T-SQL 存储过程是在 SQL Server 数据库中编写的一种程序,它可以包含一系列的 T-SQL 语句,用于完成特定的数据库操作任务。存储过程在数据库中被创建,然后可以通过指定存储过程的名称并给出参数(如果该过程接受参数)来执行。
    • 1概念:

      预先存储好的sql程序,通过名称和参数进行执行,供应程序去调用,也可以有返回结果,存储过程可以包含sql语句,可以包含流程控制、逻辑语句等。

    • 2 系统自带存储过程

      • 1. 列出服务器所有数据库 exec sp_databases

      • 2. 列出有关指定数据库或者所有的数据库信息 exec sp_helpdb MSDB

      • 3. 更改数据库名字,@newname 新名字; @dbname 旧名称 exec sp_renamedb @dbname = 'AsD',@newname = 'AD'

      • 4. 返回某个表列的信息 exec sp_columns Students

      • 5 查询一个表的约束信息 exec sp_helpconstraint Students

      • 6. 查询表的所有信息 exec sp_help Students

      • 7. 查看某个表的索引信息 exec sp_helpindex Students

    • 3 自定义带参数存储过程

      • 语法:

      • -- create procedure过程名
        -- @参数1 数据类型
        -- @参数2 数据类型
        -- as 
        --   sql语句
        -- go
        
      • 实例:

      • create procedure usp_test2
        	@cs int,
        as
        	select StudentId from Students where @cs = Id
        go
        -- 调用带参数的存储过程
        exec usp_test2 1000

    • 4 自定义不带参数存储过程

      • 语法:

      • -- create procedure过程名
        -- as 
        --   sql语句
        -- go
      • 实例:

      • create procedure usp_test2
        as
        	select StudentId from Students where Id = 100000
        go
        -- 调用带参数的存储过程
        exec usp_tes

    • 5 自定义带输出参数存储过程

      • 语法:

      • -- create procedure过程名
        -- @参数1 数据类型 output
        -- as 
        --   sql语句
        -- go
      • 实例:

      • create procedure usp_tt3
        	-- 输出参数返回值
        	@jigecount int output,
        	@quekaocount int output
        as
        	select @jigecount = 23,@quekaocount=30
        go	
        
        -- 调用
        declare @a int,@b int
        exec usp_tt3  @a output,@b output
        print(convert(varchar,@a)+'i'+convert(varchar,@b)) --打印结果
        
        -- 结果:23i30
        

    • 6 自定义带默认值参数的存储过程

      • 语法:

      • -- create procedure过程名
        -- @参数1 数据类型 = 默认值 output
        -- as 
        --   sql语句
        -- go
      • 实例:

      • create procedure usp_test2
        	@cs int = 10 output
        as
        	select StudentId from Students where @cs = Id
        go
        -- 调用带参数的存储过程(调用时可以不带参数)
        exec usp_test2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值