SQL PRINTF

SQL PRINTF

MSDN說明如下,

如果訊息字串不是 Unicode 字串,它的長度可以多達 8,000 個字元,,

如果它是 Unicode 字串,則可以多達 4,000 個字元。 較長字串會被截斷。

varchar(max) 和 nvarchar(max) 資料類型會被截斷為不大於 varchar(8000) 和 nvarchar(4000) 的資料類型。

 

所以PRINTF一次只能印出4000字,

超過4000字可以用串接的方式處理,

如下:

 

DECLARE @PRINTF_SQL NVARCHAR(MAX)

SET @PRINTF_SQL = N'select 1 from table'

WHILE LEN(@PRINTF_SQL) < 4000

BEGIN

        SET @PRINTF_SQL = @PRINTF_SQL + CHAR(13) + N'union all select 1 from table'

END

 

自我LV~