动态执行sql

-- =============================================
-- Declare and using a KEYSET cursor
-- =============================================
drop proc pro_eachsql
go
create proc pro_eachsql @sqlTo nvarchar(max)
as
begin


 create table #table_sql ( /* Temp command storage */  
  exesql    nvarchar(max) COLLATE database_default NULL  
 )  


 set nocount on  
 print 'insert #table_sql '+@sqlTo
 exec('insert #table_sql '+@sqlTo)

DECLARE  sqllist_cursor CURSOR
KEYSET
FOR select * from #table_sql
DECLARE @sql nvarchar(max)
OPEN sqllist_cursor
FETCH NEXT FROM sqllist_cursor INTO @sql
WHILE (@@fetch_status <> -1)
BEGIN
    IF (@@fetch_status <> -2)
    BEGIN
--        PRINT 'add user defined code here' 
--        eg.
        exec(@sql)
    END
    FETCH NEXT FROM sqllist_cursor INTO @sql
END
drop table #table_sql
CLOSE sqllist_cursor
DEALLOCATE sqllist_cursor

end
GO
pro_eachsql 'select ''print ''''''+name+'''''''' from sys.tables'


select ''print ''''''+name+'''''''' from sys.tables

转载于:https://www.cnblogs.com/mingyongcheng/archive/2012/06/11/2544745.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值