我有一个表在SQL Server 2012中的BI:如何连接长为nvarchar(最大)行建立一个动态T-SQL
CREATE TABLE CodeParts (
ID int identity(1,1) not null
,Line nvarchar(max) not null
)
装载有很长的T-SQL查询的部分存储在[Line]
柱。例如:
ID | Line
----------------------
1 | BEGIN TRAN MERGE someTableWithLotOfColumns dst USING (SELECT...
2 | WHEN MATCHED THEN CASE WHEN dst.someColumn != src.someColumn...
3 | WHEN NOT MATCHED...
4 | OUTPUT...
5 | ;MERGE... next table with lot of columns blah blah blah
...| ...
25 | ;MERGE... yet another table with lot of columns
60 | COMMIT
该代码有60行,由于列的数量和它们的名称长度,每行可能最多12,000个字符。
我需要执行所有这些行构建的整个代码,我不知道如何避免截断。
'nvarchar(max)'*变量*不是[限于那个讨厌的2GB限制](http://stackoverflow.com/q/7611394/15498) –
@Damien_The_Unbeliever Thx!我刚刚使用'TOP 22000'和'REPLICATE'以100.000测试了我的代码(在* Tally *中有一些'CROSS JOINs'),这应该会超出* magic limit *。几乎4分钟后,我得到了异常6365 :(自己的翻译)* XML进程导致XML数据类型大于2GB。该进程已终止*。 – Shnugo
是的,这似乎是(ab-)使用XML系统执行串接的限制。 –