亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

SQL Server 2008 存儲過程示例

2024-08-31 01:02:30
字體:
來源:轉載
供稿:網友
這篇文章主要為大家分享了SQL Server 2008 存儲過程示例代碼,需要的朋友可以參考下
 
 
 --有輸入參數的存儲過程--create proc GetComment(@commentid int)asselect * from Comment where CommentID=@commentid --有輸入與輸出參數的存儲過程--create proc GetCommentCount@newsid int,@count int outputasselect @count=count(*) from Comment where NewsID=@newsid  --返回單個值的函數--create function MyFunction(@newsid int)returns intasbegindeclare @count intselect @count=count(*) from Comment where NewsID=@newsidreturn @countend --調用方法--declare @count intexec @count=MyFunction 2print @count --返回值為表的函數--Create function GetFunctionTable(@newsid int)returns tableasreturn(select * from Comment where NewsID=@newsid) --返回值為表的函數的調用--select * from GetFunctionTable(2)

SQLServer 存儲過程中不拼接SQL字符串實現多條件查詢

--以前拼接的寫法  set @sql=' select * from table where 1=1 '  if (@addDate is not null)   set @sql = @sql+' and addDate = '+ @addDate + ' '  if (@name <>'' and is not null)   set @sql = @sql+ ' and name = ' + @name + ' '  exec(@sql)

下面是 不采用拼接SQL字符串實現多條件查詢的解決方案

  --第一種寫法是 感覺代碼有些冗余  if (@addDate is not null) and (@name <> '')   select * from table where addDate = @addDate and name = @name  else if (@addDate is not null) and (@name ='')   select * from table where addDate = @addDate  else if(@addDate is null) and (@name <> '')   select * from table where and name = @name  else if(@addDate is null) and (@name = '')  select * from table  --第二種寫法是  select * from table where (addDate = @addDate or @addDate is null) and (name = @name or @name = '')  --第三種寫法是  SELECT * FROM table where  addDate = CASE @addDate IS NULL THEN addDate ELSE @addDate END,  name = CASE @name WHEN '' THEN name ELSE @name END

SQLSERVER存儲過程基本語法

一、定義變量

--簡單賦值declare @a intset @a=5print @a --使用select語句賦值declare @user1 nvarchar(50)select @user1= '張三'print @user1declare @user2 nvarchar(50)select @user2 = Name from ST_User where ID=1print @user2 --使用update語句賦值declare @user3 nvarchar(50)update ST_User set @user3 = Name where ID=1print @user3 

二、表、臨時表、表變量

--創建臨時表1create table #DU_User1(   [ID] [ int ]  NOT NULL ,   [Oid] [ int ] NOT NULL ,   [Login] [nvarchar](50) NOT NULL ,   [Rtx] [nvarchar](4) NOT NULL ,   [ Name ] [nvarchar](5) NOT NULL ,   [ Password ] [nvarchar]( max ) NULL ,   [State] [nvarchar](8) NOT NULL);--向臨時表1插入一條記錄insert into #DU_User1 (ID,Oid,[Login],Rtx, Name ,[ Password ],State) values (100,2, 'LS' , '0000' , '臨時' , '321' , '特殊' ); --從ST_User查詢數據,填充至新生成的臨時表select * into #DU_User2 from ST_User where ID<8 --查詢并聯合兩臨時表select * from #DU_User2 where ID<3 union select * from #DU_User1 --刪除兩臨時表drop table #DU_User1drop table #DU_User2 --創建臨時表CREATE TABLE #t(   [ID] [ int ] NOT NULL ,   [Oid] [ int ] NOT NULL ,   [Login] [nvarchar](50) NOT NULL ,   [Rtx] [nvarchar](4) NOT NULL ,   [ Name ] [nvarchar](5) NOT NULL ,   [ Password ] [nvarchar]( max ) NULL ,   [State] [nvarchar](8) NOT NULL ,) --將查詢結果集(多條數據)插入臨時表insert into #t select * from ST_User--不能這樣插入--select * into #t from dbo.ST_User --添加一列,為int型自增長子段alter table #t add [myid] int NOT NULL IDENTITY(1,1)--添加一列,默認填充全球唯一標識alter table #t add [myid1] uniqueidentifier NOT NULL default (newid()) select * from #tdrop table #t--給查詢結果集增加自增長列 --無主鍵時:select IDENTITY( int ,1,1) as ID, Name ,[Login],[ Password ] into #t from ST_Userselect * from #t --有主鍵時:select ( select SUM (1) from ST_User where ID<= a.ID) as myID,* from ST_User a order by myID--定義表變量declare @t table(   id int not null ,   msg nvarchar(50) null)insert into @t values (1, '1' )insert into @t values (2, '2' )select * from @t

三、循環

--while循環計算1到100的和declare @a intdeclare @ sum intset @a=1set @ sum =0while @a<=100begin   set @ sum +=@a   set @a+=1endprint @ sum

四、條件語句

--if,else條件分支if(1+1=2)begin   print '對'endelsebegin   print '錯'end --when then條件分支declare @today intdeclare @week nvarchar(3)set @today=3set @week= case   when @today=1 then '星期一'   when @today=2 then '星期二'   when @today=3 then '星期三'   when @today=4 then '星期四'   when @today=5 then '星期五'   when @today=6 then '星期六'   when @today=7 then '星期日'   else '值錯誤'endprint @week 

五、游標

declare @ID intdeclare @Oid intdeclare @Login varchar (50) --定義一個游標declare user_cur cursor for select ID,Oid,[Login] from ST_User--打開游標open user_curwhile @@fetch_status=0begin--讀取游標   fetch next from user_cur into @ID,@Oid,@Login   print @ID   --print @Loginendclose user_cur--摧毀游標deallocate user_cur

五、游標

declare @ID intdeclare @Oid intdeclare @Login varchar (50) --定義一個游標declare user_cur cursor for select ID,Oid,[Login] from ST_User--打開游標open user_curwhile @@fetch_status=0begin--讀取游標   fetch next from user_cur into @ID,@Oid,@Login   print @ID   --print @Loginendclose user_cur--摧毀游標deallocate user_cur

六、觸發器

  觸發器中的臨時表:
  Inserted
  存放進行insert和update 操作后的數據
  Deleted
  存放進行delete 和update操作前的數據

--創建觸發器Create trigger User_OnUpdate    On ST_User    for Update As    declare @msg nvarchar(50)   --@msg記錄修改情況   select @msg = N '姓名從“' + Deleted. Name + N '”修改為“' + Inserted. Name + '”' from Inserted,Deleted   --插入日志表   insert into [LOG](MSG) values (@msg)   --刪除觸發器drop trigger User_OnUpdate

七、存儲過程

--創建帶output參數的存儲過程CREATE PROCEDURE PR_Sum   @a int ,   @b int ,   @ sum int outputASBEGIN   set @ sum =@a+@bEND --創建Return返回值存儲過程CREATE PROCEDURE PR_Sum2   @a int ,   @b intASBEGIN   Return @a+@bEND   --執行存儲過程獲取output型返回值declare @mysum intexecute PR_Sum 1,2,@mysum outputprint @mysum --執行存儲過程獲取Return型返回值declare @mysum2 intexecute @mysum2= PR_Sum2 1,2print @mysum2

八、自定義函數

  函數的分類:
    1)標量值函數
    2)表值函數
        a:內聯表值函數
        b:多語句表值函數
    3)系統函數

--新建標量值函數create function FUNC_Sum1(   @a int ,   @b int)returns intasbegin   return @a+@bend --新建內聯表值函數create function FUNC_UserTab_1(   @myId int)returns tableasreturn ( select * from ST_User where ID<@myId) --新建多語句表值函數create function FUNC_UserTab_2(   @myId int)returns @t table(   [ID] [ int ] NOT NULL ,   [Oid] [ int ] NOT NULL ,   [Login] [nvarchar](50) NOT NULL ,   [Rtx] [nvarchar](4) NOT NULL ,   [ Name ] [nvarchar](5) NOT NULL ,   [ Password ] [nvarchar]( max ) NULL ,   [State] [nvarchar](8) NOT NULL)asbegin   insert into @t select * from ST_User where ID<@myId   returnend --調用表值函數select * from dbo.FUNC_UserTab_1(15)--調用標量值函數declare @s intset @s=dbo.FUNC_Sum1(100,50)print @s --刪除標量值函數drop function FUNC_Sum1

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美国产骚| 中国日韩欧美久久久久久久久| 日本欧美在线视频| 亚洲最大福利网站| 亚洲色图色老头| 中文字幕久热精品视频在线| 91精品视频观看| 亚洲精品永久免费精品| 国语自产精品视频在线看| 在线性视频日韩欧美| 国产精品999| 综合欧美国产视频二区| 91视频国产高清| 亚洲成人教育av| 91香蕉国产在线观看| 亚洲国产精品va在线看黑人动漫| 欧美激情一区二区三级高清视频| 欧美在线免费视频| 国产成人综合亚洲| 国产精品久久久久久亚洲影视| 伊人伊人伊人久久| 亚洲第一页中文字幕| 国产亚洲精品va在线观看| 日韩电影中文字幕在线观看| 亚洲午夜女主播在线直播| 成人性生交xxxxx网站| 久久免费视频网站| 国产精品h片在线播放| 精品视频偷偷看在线观看| 久久中文字幕在线| 国产乱人伦真实精品视频| 久久99国产精品久久久久久久久| 国产精品r级在线| 91精品久久久久久久久青青| 日韩美女在线播放| 欧美性受xxx| 欧美亚州一区二区三区| 国产精品久久久久免费a∨| 精品亚洲国产视频| 色综合久久88| 91成人在线视频| 欧美激情高清视频| 国产精品日韩精品| 黑人巨大精品欧美一区二区免费| 亚洲a区在线视频| 久久久久www| 97激碰免费视频| 色樱桃影院亚洲精品影院| 日韩视频精品在线| 欧美日韩激情视频| 久久青草精品视频免费观看| 色偷偷av一区二区三区乱| 国产在线不卡精品| 国产盗摄xxxx视频xxx69| 亚洲一区二区三区xxx视频| 日韩成人黄色av| 最近2019年日本中文免费字幕| 国产在线播放不卡| 中文字幕欧美日韩va免费视频| 国产精品极品在线| 欧美黄色小视频| 亚洲天堂男人天堂女人天堂| 欧美激情视频网| 国产精品永久免费观看| 久久久亚洲天堂| 久久久久久久亚洲精品| 亚洲福利视频久久| 欧美午夜精品久久久久久浪潮| 亚洲精品久久久一区二区三区| 欧美大肥婆大肥bbbbb| 成人精品一区二区三区| 国产精品∨欧美精品v日韩精品| 亚洲老头同性xxxxx| 亚洲成人激情小说| 成人精品在线视频| 麻豆乱码国产一区二区三区| 久久久免费精品| 久久久亚洲福利精品午夜| 成人免费视频xnxx.com| 国产精品麻豆va在线播放| 国产精品成人v| 欧美视频免费在线| 欧美一级淫片播放口| 91久久精品视频| 日韩成人在线观看| 中文字幕国产亚洲2019| 欧美日韩国产第一页| 人人爽久久涩噜噜噜网站| 18久久久久久| 久久国产色av| 久久精品99国产精品酒店日本| 亚洲国产成人爱av在线播放| 国产一区二区日韩| 国产欧美在线观看| 久久久女人电视剧免费播放下载| 欧美激情亚洲一区| 国产精品网红直播| 欧美日韩综合视频| 亚洲天堂男人天堂| 成人免费福利视频| 成人亲热视频网站| 国产精品日韩欧美综合| 国产精品一区二区三区毛片淫片| 国产午夜精品一区二区三区| 日韩久久午夜影院| 亚洲精品网站在线播放gif| 色香阁99久久精品久久久| 2019亚洲男人天堂| 国产精品视频久| 亚洲天堂免费在线| 久久久久久久久亚洲| 亚洲成年网站在线观看| 岛国视频午夜一区免费在线观看| 国产精品美女视频网站| 欧美成人全部免费| 日本亚洲精品在线观看| 国产精品激情av在线播放| 欧美日韩亚洲视频一区| 91久久精品美女高潮| 亚洲国产精品成人va在线观看| zzijzzij亚洲日本成熟少妇| 国产精品中文字幕在线观看| 久久免费精品日本久久中文字幕| 亚洲精品短视频| 福利一区福利二区微拍刺激| 欧美黑人一区二区三区| 精品偷拍各种wc美女嘘嘘| 亚洲欧美在线播放| 欧美激情免费观看| 国产精品久久久久久久久男| 国产精品高潮视频| 97视频com| 色婷婷久久一区二区| 国产精品国内视频| 国产亚洲视频在线观看| 一区国产精品视频| 国内精品久久久久影院 日本资源| 亚洲一区精品电影| 久久久久999| 一本色道久久综合狠狠躁篇的优点| 亚洲视频电影图片偷拍一区| 国产精品日韩一区| 成人久久一区二区| 国产视频丨精品|在线观看| 97人洗澡人人免费公开视频碰碰碰| 国产剧情久久久久久| 欧美人与性动交a欧美精品| 亚洲高清免费观看高清完整版| 久久99久国产精品黄毛片入口| 成人美女av在线直播| 亚洲国产精品久久久久秋霞蜜臀| 国产精品久久久久一区二区| 日韩中文在线中文网在线观看| 精品国产福利视频| 午夜美女久久久久爽久久| 日本欧美一二三区| 国产suv精品一区二区三区88区| 欧美国产日韩免费| 日韩在线免费观看视频| 久久免费观看视频| 亚洲人精选亚洲人成在线| 日韩欧美亚洲综合| 欧美精品亚州精品| 欧美日韩成人在线播放|