微软认证考试70-461 Modify Data 数据修改 --24%比重--(1)
附注:微软认证考试70-461范围
注意:VARYING指定作为输出参数支持的结果集。该参数由过程动态构造,其内容可能发生改变。仅适用于 cursor 参数。使用:
DECLARE @MyCursor CURSOREXEC my1 @testcursor = @MyCursor OUTPUTWHILE (@@FETCH_STATUS = 0)BEGIN FETCH NEXT FROM @MyCursorENDCLOSE @MyCursorDEALLOCATE @MyCursorGO使用 WITH RECOMPILE 选项
用户定义的过程可在用户定义的数据库中创建,或者在除了 Resource 数据库之外的所有系统数据库中创建。本地临时过程的名称以单个数字符号 (#) 开头;它们仅对当前的用户连接是可见的;当用户关闭连接时被删除。全局临时过程的名称以两个数字符号 (##) 开头,创建后对任何用户都是可见的,并且在使用该过程的最后一个会话结束时被删除。
以下示例使用 EXECUTE AS 为数据库操作创建自定义权限。某些操作(如 TRUNCATE TABLE)没有可授予的权限。通过将 TRUNCATE TABLE 语句合并到存储过程中并指定该过程作为一个有权修改表的用户执行,您可以将截断表的权限扩展至授予其对过程的 EXECUTE 权限的用户。CREATE PROCEDURE dbo.TruncateMyTableWITH EXECUTE AS SELFAS TRUNCATE TABLE MyDB..MyTable;
附注:存储过程中可以使用批处理控件语句,如IF...ELSE...,TRY...CATCH,事务等。
参考:http://msdn.microsoft.com/zh-cn/library/aa258259(v=sql.80).aspxhttp://msdn.microsoft.com/zh-cn/library/ms187926(v=sql.110).aspx