当前位置: 代码迷 >> SQL >> sql个人总结四
  详细解决方案

sql个人总结四

热度:64   发布时间:2016-05-05 10:43:25.0
sql个人总结4

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

1:储存过程

a:不带参数的储存过程

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

b:带参数的储存过程

USE testGOCREATE PROCEDURE WLY1 @A INTAS DECLARE @B INTSET @B=1SET @[email protected]PRINT @AGO

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

USE testGOCREATE PROCEDURE WLY2 @A INT OUTPUT    --输出参数值的参数AS DECLARE @B INTSET @B=1select @[email protected]PRINT @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 @[email protected]+1    FETCH NEXT FROM C_ROLE INTO @VRID,@VRNAMEENDCLOSE C_ROLEDEALLOCATE C_ROLEGO 

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


  相关解决方案