打印本文 打印本文 关闭窗口 关闭窗口
封装游标存储过程(Pr_execsql2)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数867  更新时间:2007/11/14 12:56:13  文章录入:mintao  责任编辑:mintao

使用脚本自己可以执行自己的特性,封装游标操作存储过程如下:
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

打印本文 打印本文 关闭窗口 关闭窗口