sql个人总结4
说到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:存储过程的一些参数
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
我感觉游标的使用尽量的避免,因为是取出数据再存起来,如果数据量很大的话就不好了。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。