用SQL语句生成某个库下所有存储过程脚本,并每个存为一个文件

DECLARE @s VARCHAR(4000),@n INT,@i INT,@s1 VARCHAR(100)
SELECT IDENTITY(INT) id,text INTO ## 
    FROM syscomments
SELECT @n=@@ROWCOUNT,@i=0
WHILE @i<@n
    BEGIN
        SELECT @i=@i+1,@s=''
        SELECT @s1=REPLACE(REPLACE(RTRIM(LTRIM(STUFF(STUFF(text,CHARINDEX('AS',text),40000,''),1,CHARINDEX('PROC',STUFF(text,CHARINDEX('AS',text),40000,''))+4,''))),CHAR(10),''),CHAR(13),'')
            FROM ## WHERE ID=RTRIM(@i)
            --SELECT @s1,ASCII(SUBSTRING(@s1,3,1))
            --SELECT LEN(REPLACE(REPLACE(@s1,CHAR(13),''),CHAR(10),''))
        SELECT @s='SELECT text FROM tempdb.dbo.## WHERE ID=' + RTRIM(@i)
        EXEC('EXEC master..xp_cmdshell ''bcp "' + @s + ' "  queryout "e:ProcTXT/' + @s1 + '.txt" -S"pcnameSQLEXPRESS" -c -U"sa" -P"xxxx"''')
    END
DROP TABLE ##

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值