我有個超長的動態 SQL 查詢,超過 NVARCHAR(4000),有什麼方法可以讓我執行這個大字串

這個問題可以分 SQL 2000 及 SQL 2005 來看。

SQL 2005

可以使用 NVARCHAR(max) ,長度可以到 2GB !

 

SQL 2000

可以將大量較小的字串串聯在一起。請看以下範例:

DECLARE @q1 NVARCHAR(4000), @q2 NVARCHAR(4000), @q3 NVARCHAR(4000)
SET @q1 = 'SELECT...'
SET @q2 = 'FROM...'
SET @q3 = 'WHERE...'
EXEC (@q1 + @q2 + @q3)