存储过程小结

本文详细介绍了SQL中的存储过程,包括大小写敏感性、标识符使用、基本数据类型、运算符、流程控制语句如条件分支与循环,以及如何创建和调用存储过程等核心内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  
1.1.    存储过程
1.1.1.    大小写
大小写不敏感
1.1.2.    标识符
@ + 一般规则
set @i=1
1.1.3.    语句分隔符与续行符
直接写成多行
1.1.4.    注释
--
/*    */
1.1.5.    基本数据类型
int,money,varchar,bit,DateTime
1.1.6.    数组类型
1.1.7.    运算符
+ - * / %
加、减、乘、除、取余
> >= < <= = <>
大于、大于等于、小于、小于等于、等于、不等于
Not and or
与、或、非
+
串连接
1.1.8.    语句
顺序:
declare @i int
set @i=1
 
分支:
declare @i int
set @i=1
 
if      (@i>10)
       print 'true'
else
       print 'false'
 
SELECT   Category =
      CASE type
         WHEN 'popular_comp' THEN 'Popular Computing'
         WHEN 'mod_cook' THEN 'Modern Cooking'
         WHEN 'business' THEN 'Business'
         WHEN 'psychology' THEN 'Psychology'
         WHEN 'trad_cook' THEN 'Traditional Cooking'
         ELSE 'Not yet categorized'
      END
 
循环:
 
declare @i int
set @i=1
while @i<=20000
begin
insert into t_team(FCode,FName,FLeader,FDwID,FType,FNo)
       values(Convert(varchar(255),@i),'FName','FLeader','AAC7E414-6C94-4F29-9816-DC39F34E5132','FType',@i)
set @i=@i+1
end
 
break
continue
return
 
1.1.9.    函数与过程调用
CREATE FUNCTION ISOweek (@DATE datetime)
RETURNS int
AS
BEGIN
   DECLARE @ISOweek int
   SET @ISOweek= DATEPART(wk,@DATE)+1
      -DATEPART(wk,CAST(DATEPART(yy,@DATE) as CHAR(4))+'0104')
--Special cases: Jan 1-3 may belong to the previous year
   IF (@ISOweek=0) 
      SET @ISOweek=dbo.ISOweek(CAST(DATEPART(yy,@DATE)-1 
         AS CHAR(4))+'12'+ CAST(24+DATEPART(DAY,@DATE) AS CHAR(2)))+1
--Special case: Dec 29-31 may belong to the next year
   IF ((DATEPART(mm,@DATE)=12) AND 
      ((DATEPART(dd,@DATE)-DATEPART(dw,@DATE))>= 28))
      SET @ISOweek=1
   RETURN(@ISOweek)
END
 
SELECT master.dbo.ISOweek('12/26/1999') AS 'ISO Week'
1.1.10.             代词
1.1.11.             变量作用域
@ISOweek      局部变量
@@                全局变量
 
 
1.1.12.             存储过程
 
CREATE PROCEDURE au_info 
   @lastname varchar(40), 
   @firstname varchar(20) 
AS 
SELECT au_lname, au_fname, title, pub_name
   FROM authors a INNER JOIN titleauthor ta
      ON a.au_id = ta.au_id INNER JOIN titles t
      ON t.title_id = ta.title_id INNER JOIN publishers p
      ON t.pub_id = p.pub_id
   WHERE au_fname = @firstname
      AND au_lname = @lastname
GO
 
 
EXECUTE au_info @lastname = 'Dull', @firstname = 'Ann'
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值