日期:2014-05-18  浏览次数:20487 次

紧急求助,如何在存储过程中调用和执行外部的sql脚本文件?
非常郁闷,由于要处理的表(动态的)的字段非常多,导致使用EXEC命令超出了最大的字符串长度
比如declare @sql nvarchar(max)
set @sql = ......
exec @sql

当@sql超过4000时就无法赋值了,导致错误,求教解决方案
由于表是动态的(很多表要做类似的处理),我想可能可以通过把所有的脚本写成一个个脚本文件,从存储过程里调用执行,不知是否可行,如何实现,谢谢大家

------解决方案--------------------
探讨
非常郁闷,由于要处理的表(动态的)的字段非常多,导致使用EXEC命令超出了最大的字符串长度
比如declare @sql nvarchar(max)
set @sql = ......
exec @sql

当@sql超过4000时就无法赋值了,导致错误,求教解决方案
由于表是动态的(很多表要做类似的处理),我想可能可以通过把所有的脚本写成一个个脚本文件,从存储过程里调用执行,不知是否……

------解决方案--------------------
SQL code

master.dbo.xp_cmdShell 'sqlcmd -S IP地址 -U 用户名 -P 密码 -d 数据库 -i 文件全路径+名字'