Nvarchar(Max) 資料中的意外截斷
儘管將@SQL1 變數宣告為nvarchar(max),最多可儲存2GB資料,結果被截斷為4000 個字元。這可能看起來令人費解,特別是考慮到 nvarchar(max) 的龐大資料容量。
問題在於 @SQL1 變數中字串的串聯。在分配給@SQL1之前,資料儲存為長度小於4000個字元的字串集合。當這些字串連接時,它們保留其最大長度。因此,對 @SQL1 的賦值會建立一個長度為 4000 個字元的字串,儘管聲明的資料類型允許更多字元。
要避免這種截斷,請確保連接的所有字串都是 nvarchar執行分配之前的(最大)資料類型。這可以透過將較短的字串明確轉換為 nvarchar(max) 來實現。例如:
SET @SQL1 = N'' SET @SQL1 = @SQL1 + N'SELECT DISTINCT Venue...'
將常數字串轉換為 nvarchar(max),整個字串將變為 nvarchar(max),截斷問題將得到解決。
以上是為什麼我的 Nvarchar(Max) 變數在 4000 個字元處被截斷?的詳細內容。更多資訊請關注PHP中文網其他相關文章!