封装游标存储过程(Pr_execsql2)

王朝mssql·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

使用脚本自己可以执行自己的特性,封装游标操作存储过程如下:

CREATE PROCEDURE Pr_ExecSQL2

@Asqlstring VARCHAR(8000) --输入的SQL语句

AS

EXEC ('

--启动事务

BEGIN TRAN

DECLARE @ASql VARCHAR(8000)

DECLARE tnames_cursor CURSOR LOCAL FAST_FORWARD FOR '+ @asqlstring +'

OPEN tnames_cursor

FETCH NEXT FROM tnames_cursor INTO @ASql

WHILE (@@FETCH_STATUS=0)

BEGIN

print @ASql

EXEC (@ASql)

IF @@ERROR <> 0 GOTO FINALEXIT

FETCH NEXT FROM tnames_cursor INTO @ASql

END

CLOSE tnames_cursor

DEALLOCATE tnames_cursor

COMMIT TRAN

RETURN

FINALEXIT:

ROLLBACK TRAN

CLOSE tnames_cursor

DEALLOCATE tnames_cursor

')

使用方法:

declare @sql varchar(8000)

set @sql='select ''update a set a.a='' + b.a from b '

exec Pr_execsql2 @sql

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航