存儲過程和游標


存儲過程和游標

  1 -- 變量的聲明,sql里面聲明變量時必須在變量前加@符號
  2     DECLARE @I INT
  3 
  4 -- 變量的賦值,變量賦值時變量前必須加set
  5     SET @I = 30
  6 
  7 -- 聲明多個變量
  8     DECLARE @s varchar(10),@a INT
  9 
 10 -- Sql 里if語句
 11     IF 條件 BEGIN
 12         執行語句
 13     END
 14     ELSE BEGIN
 15         執行語句
 16     END
 17             
 18     DECLARE @d INT
 19     set @d = 1
 20 
 21     IF @d = 1 BEGIN
 22 
 23     -- 打印
 24         PRINT '正確'
 25     END
 26     ELSE BEGIN
 27         PRINT '錯誤'
 28     END
 29 
 30 
 31 -- Sql 里的多條件選擇語句.
 32     DECLARE @iRet INT, @PKDisp VARCHAR(20)
 33     SET @iRet = 1
 34     Select @iRet =
 35     CASE
 36         WHEN @PKDisp = '' THEN 1
 37         WHEN @PKDisp = '' THEN 2
 38         WHEN @PKDisp = '' THEN 3
 39         WHEN @PKDisp = '' THEN 4
 40         WHEN @PKDisp = '' THEN 5
 41         ELSE 100
 42     END
 43 
 44 -- 循環語句
 45     WHILE 條件 BEGIN    
 46         執行語句
 47     END
 48 
 49     DECLARE @i INT
 50     SET @i = 1
 51     WHILE @i<1000000 BEGIN
 52         set @i=@i+1
 53     END
 54     -- 打印
 55     PRINT @i
 56 
 57 -- Select INTO 從一個查詢的計算結果中創建一個新表。 數據並不返回給客戶端,這一點和普通的
 58 -- Select 不同。 新表的字段具有和 Select 的輸出字段相關聯(相同)的名字和數據類型。
 59         
 60         select * into NewTable
 61             from Uname
 62 
 63 
 64 -- Insert INTO Select
 65         -- 表ABC必須存在
 66         -- 把表Uname里面的字段Username復制到表ABC
 67         Insert INTO ABC Select Username FROM Uname
 68 
 69 -- 創建臨時表
 70         Create TABLE #temp(
 71             UID int identity(1, 1) PRIMARY KEY,
 72             UserName varchar(16),
 73             Pwd varchar(50),
 74             Age smallint,
 75             Sex varchar(6)
 76         )
 77         -- 打開臨時表
 78         Select * from #temp
 79 
 80 
 81 -- 存儲過程
 82         -- 要創建存儲過程的數據庫
 83         Use Test
 84         -- 判斷要創建的存儲過程名是否存在
 85             if Exists(Select name From sysobjects Where name='csp_AddInfo' And
 86 
 87 type='P')
 88             -- 刪除存儲過程
 89             Drop Procedure dbo.csp_AddInfo
 90         Go
 91                 
 92                 
 93         -- 創建存儲過程
 94         Create Proc dbo.csp_AddInfo
 95         -- 存儲過程參數
 96         @UserName varchar(16),
 97         @Pwd varchar(50),
 98         @Age smallint,
 99         @Sex varchar(6)
100         AS
101         -- 存儲過程語句體
102         insert into Uname (UserName,Pwd,Age,Sex)
103             values (@UserName,@Pwd,@Age,@Sex)
104         RETURN
105         -- 執行
106         GO
107                 
108         -- 執行存儲過程
109         EXEC csp_AddInfo 'Junn.A','123456',20,''
110 
111 有關游標的問題
112 
113         declare db cursor for       //聲明一個游標(db為其名稱)
114 
115         SELECT UNIT_NAME FROM UNIT WHERE LEFT(UNIT_CODE,2)=LEFT(@strTO,2)//記錄集
116 
117         open db                 //打開游標
118 
119             fetch next from db into @strUNIT_NAME //將第一個值放入一個參數中
120 
121         while @@fetch_status = 0 ---存在本筆值向下循環
122 
123 (0:順利執行;-1:失敗,或資料列超出結果集;-2:擷取的資料列已遺漏)
124 
125         BEGIN             ----開始循環
126 
127                         //個體操作
128 
129         End                ----結束循環
130 
131         Close db            ---關閉游標
132 
133 deallocate db         //移除資料指標參考

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM