sql個人總結4
來源:程序員人生 發布時間:2015-03-13 08:04:01 閱讀次數:2990次
說到sql,無疑存儲進程很重要,這篇就和大家討論貯存進程。
1:貯存進程
a:不帶參數的貯存進程
USE test
GO
CREATE PROCEDURE WLY --貯存進程,不帶參數
AS
SELECT * FROM role
GO
b:帶參數的貯存進程
USE test
GO
CREATE PROCEDURE WLY1
@A INT
AS
DECLARE @B INT
SET @B=1
SET @A=@B
PRINT @A
GO
c:帶有輸出參數的貯存進程
USE test
GO
CREATE PROCEDURE WLY2
@A INT OUTPUT --輸出參數值的參數
AS
DECLARE @B INT
SET @B=1
select @A=@B
PRINT @A
GO
d:存儲進程的1些參數
SP_HELP WLY1 --返回貯存進程的名稱,時間,參數等
SP_HELPTEXT WLY1 --返回貯存進程的創建語句
SP_RENAME WLY,WLY2 --重命名貯存進程
GO
e:履行貯存進程
execute dbo.WLY
EXECUTE WLY1 1 --有參數的貯存進程
DECLARE @C INT --帶參數的輸出
EXECUTE WLY2 @C OUTPUT
GO
2:游標
DECLARE C_ROLE CURSOR SCROLL
FOR SELECT RID,RNAME FROM ROLE
FOR READ ONLY
DECLARE @COUNT INT,@VRID INT,@VRNAME VARCHAR(1)
OPEN C_ROLE
FETCH NEXT FROM C_ROLE
INTO @VRID,@VRNAME
SET @COUNT=0
WHILE @@FETCH_STATUS=0
BEGIN
PRINT @VRID
PRINT @VRNAME
PRINT @COUNT
SET @COUNT=@COUNT+1
FETCH NEXT FROM C_ROLE INTO @VRID,@VRNAME
END
CLOSE C_ROLE
DEALLOCATE C_ROLE
GO
我感覺游標的使用盡可能的避免,由于是取出數據再存起來,如果數據量很大的話就不好了。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈