存储过程语法整理

CREATE PROCEDURE [拥有者.]存储过程名[;程序编号]
sql中的存储过程及相关介绍

  [(参数#1,…参数#1024)]
  [WITH
  {RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
  ]
  [FOR REPLICATION]
  AS 程序行
  其中存储过程名不能超过128个字。每个存储过程中最多设定1024个参数
  (SQL Server 7.0以上版本),参数的使用方法如下:
  @参数名 数据类型 [VARYING] [=内定值] [OUTPUT]
  每个参数名前要有一个“@”符号,每一个存储过程的参数仅为该程序内部使用,参数的类型除了IMAGE外,其他SQL Server所支持的数据类型都可使用。
  [=内定值]相当于我们在建立数据库时设定一个字段的默认值,这里是为这个参数设定默认值。[OUTPUT]是用来指定该参数是既有输入又有输出值的,也就是在调用了这个存储过程时,如果所指定的参数值是我们需要输入的参数,同时也需要在结果中输出的,则该项必须为OUTPUT,而如果只是做输出参数用,可以用CURSOR,同时在使用该参数时,必须指定VARYING和OUTPUT这两个语句。
  例子:
  CREATE PROCEDURE order_tot_amt
  @o_id int,
  @p_tot int output
  AS
  SELECT @p_tot = sum(Unitprice*Quantity)
  FROM orderdetails
  WHERE ordered=@o_id
  GO

声明局部变量语法:
DECLARE @variable_name DataType
其中 variable_name为局部变量的名称,DataType为数据类型。
给局部变量赋值有两种方法:
1、SET @variable_name=value
2、SELECT @variable_name=value
两者的区别:SET赋值语句一般用于赋给变量一个指定的常量,SELECT赋值语句一般用于从表中查询出数据然后赋给变量。
例如:
DECLARE @count int
SET @count=123
PRINT @count
全局变量:
由于全局变量是系统定义的,我们这里只做举例。
@@ERROR 最后一个T-SQL错误的错误号
@@IDENTITY 最后一次插入的标识值
@@LANGUAGE 当前使用的语言名称
@@MAX_CONNECTIONS 可以创建的同时连接的最大数目
@@SERVERNAME 本地服务器的名称
@@VERSION SQL Server的版本信息


 
字符串串联运算符允许通过加号 (+) 进行字符串串联,这个加号即被称为字符串串联运算符。例如对于语句SELECT ‘abc’+’def’,其结果为abcdef。
运算符的优先等级从高到低如下所示 
括号:();
乘、除、求模运算符:*、/、%;
加减运算符:+、- ;
比较运算符:=、>、<、>=、<=、<>、!=、!>、!<;
位运算符:^、&、|;
逻辑运算符:NOT;
逻辑运算符:AND;
逻辑运算符:OR。

       
    Sql server中常用的流程控制语句
一、条件语句:
        (一) IF……ELSE语句语法
            If  条件为真
                 语句段
            Else
                 语句段
           例:
            If  (select age from stu wherestuid=10)>18
                   Print ‘成年了’
             Else
                   Print ‘未成年’
       (二)IF ……ELSE IF …..ELSE 语句形式
              例:
               If (select grade from scorewhere stuid=97001)>95
                 Print  ‘成绩为优秀’
               Else if (select grade from scorewhere stuid=97001)>80
                 Print ‘成绩为良好’
               Else if (select grade from scorewhere stuid=97001)>=60
                 Print ‘成绩为及格’
               Else
                 Print ‘成绩为不及格,需要努力’
二、WHILE、BREAK和CONTINUE语句
       While 值为真
            语句块
       Break:跳出循环
       Continue:跳出本次循环
       例1:Break
            
declare
                 @num int
begin
   set @num=1
                begin
                  while @num<=10
                  begin
                      if @num=6
                      begin
                        break
                      print @num
                      set @num=@num+1
                   end
              end
end
例2:continue
        declare
        @num int
begin
        set @num=0
        begin
             while @num<=10
                begin
                    set  @num=@num+1
                    if @num=6
                       continue
                       print @num
                end
 
        end
end
            
三、Return语句
         Return语句用来无条件地退出一个select语句或者一个过程。
         declare
               @num int
begin
              set @num=1
              begin
                 while @num<=10
                 begin
                    set @num=@num+1
                    print @num
                    return
                 end
              end
end
四、WAITFOR 语句
WAITFOR   DELAY 时间:DBMS执行SQL语句需要等待的时间
         例:begin
waitfor delay'00:00:05'
               select * from stu
             end
WAITFOR   TIME   时间:DBMS需要等到某个时刻再执行SQL语句
         例:
             begin
               waitfortime '15:07:44.403'
               select * from stu
             end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香菜+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值