我記得在那天我會做的nvarchar(4000)
瓦爾整體怪人,檢查他們的,因爲他們成長的長度,切換出來,因爲他們填補了,然後一起串聯全亂了exec調用。我想知道是否有更簡單的方法。如何執行非常長的動態sql語句?
謝謝!
編輯:
代碼示例,說明我搞砸了case語句
DECLARE @sql NVARCHAR(MAX)
SELECT @sql = CAST(N'SELECT ' AS NVARCHAR(MAX))
DECLARE @Index INT
SELECT @Index = 0
WHILE (@Index < 1000)
BEGIN
SELECT @sql = CAST(@sql AS NVARCHAR(MAX)) + CAST(N' ' AS NVARCHAR(MAX)) + CAST(CASE @Index WHEN 1 THEN N' ' END AS NVARCHAR(MAX))
SELECT @Index = @Index + 1
END
SELECT @sql = CAST(@sql AS NVARCHAR(MAX)) + CAST(1 AS NVARCHAR(MAX))
SELECT LEN(@sql)
EXECUTE sp_executesql @sql
我可能不明白這個問題,但爲什麼不使用nvarchar(MAX)變量(s) - (SQL 2005及更高版本)? – Tommy 2010-07-06 21:38:34
什麼問題?動態SQL意味着字符串連接... – 2010-07-06 21:46:00
@Tommy - 添加您的評論作爲答案。現貨上 – AdaTheDev 2010-07-06 21:52:38