sql个人总结4

来源:互联网 发布:office 2010 for mac 编辑:程序博客网 时间:2024/05/16 13:07

说到sql,无疑存储过程很重要,这篇就和大家讨论储存过程。

1:储存过程

a:不带参数的储存过程

USE testGOCREATE PROCEDURE WLY    --储存过程,不带参数ASSELECT * FROM roleGO

b:带参数的储存过程

USE testGOCREATE PROCEDURE WLY1 @A INTAS DECLARE @B INTSET @B=1SET @A=@BPRINT @AGO

c:带有输出参数的储存过程

USE testGOCREATE PROCEDURE WLY2 @A INT OUTPUT    --输出参数值的参数AS DECLARE @B INTSET @B=1select @A=@BPRINT @AGO

d:存储过程的一些参数

SP_HELP WLY1    --返回储存过程的名称,时间,参数等SP_HELPTEXT WLY1 --返回储存过程的创建语句SP_RENAME WLY,WLY2  --重命名储存过程GO

e:执行储存过程

execute dbo.WLYEXECUTE WLY1 1 --有参数的储存过程DECLARE @C INT    --带参数的输出EXECUTE WLY2 @C OUTPUTGO

2:游标

DECLARE C_ROLE CURSOR SCROLLFOR SELECT RID,RNAME FROM ROLEFOR READ ONLYDECLARE @COUNT INT,@VRID INT,@VRNAME VARCHAR(1)OPEN C_ROLEFETCH NEXT FROM C_ROLEINTO @VRID,@VRNAMESET @COUNT=0WHILE @@FETCH_STATUS=0BEGIN     PRINT @VRID    PRINT @VRNAME    PRINT @COUNT    SET @COUNT=@COUNT+1    FETCH NEXT FROM C_ROLE INTO @VRID,@VRNAMEENDCLOSE C_ROLEDEALLOCATE C_ROLEGO 

我感觉游标的使用尽量的避免,因为是取出数据再存起来,如果数据量很大的话就不好了。


0 0