这里是更新your批处理文件(它会为> 8000个字符限制的工作,但它很容易调补此限制):
for /f %%a in (sp_list.txt) do sqlcmd -E -S SERVER -d DB -h-1 -Q "DECLARE @I INT, @SP1 NVARCHAR(4000), @SP2 NVARCHAR(4000) SET @I = 0 SET @SP1 = '' SET @SP2 = '' SELECT @I = @I + 1, @SP1 = CASE WHEN @I = 1 THEN text ELSE @SP1 END, @SP2 = CASE WHEN @I = 2 THEN text ELSE @SP2 END from dbo.syscomments WHERE id = OBJECT_ID('%%a') SELECT @[email protected]" -o "%%a.sql"
个人而言,我很担心这么大程序。
这是一个限制,但如果你已经存储与超过4000个字符长的行号的程序,你可能有很多,很多更大的问题不是可以解决阅读这个博客 ... 关我的存储过程有大于约150个字符的线,所以对于大多数人来说这可能不是什么大问题。正如我所说,如果你的线路很长,你会遇到更大的问题!
Adam Machanic - "Reflect" a TSQL routine
但也有想法,大的程序是不是一个问题:
“文本”字段定义为NVARCHAR(4000),所以每行只能容纳4000个字符。但是,拥有大于4000个字符的目标代码并不罕见。 Solomon Rutzky - Searching Objects for Text
你好再次:)谢谢你的帮助!我会尽快尝试一下。我将这些存储过程与BizTalk Server SQL Adapter结合使用 - 每个sproc都是一个BizTalk应用程序的语句集合,该执行依赖于BizTalk提交的paremeter。关于 – seansilver 2009-02-27 13:58:04