當我們有2個字串要相加時,一個是 varchar(6000),另一個是 varchar(5000)。
要 CONCAT 起來會有什麼問題嗎?
以下我們用範例來測試
DECLARE @a VARCHAR(6000) = REPLICATE('a', 6000);
DECLARE @b VARCHAR(5000) = REPLICATE('b', 5000);
DECLARE @c VARCHAR(MAX) = REPLICATE('c', 6000);
SELECT LEN(@a); -- 6000
SELECT LEN(@b); -- 5000
SELECT LEN(CONCAT(@a, @b)); --8000
SELECT LEN(@a + @b); -- 8000
SELECT LEN(CONCAT(@a, @c)); -- 12000
SELECT LEN(@a + @c); -- 12000
所以,varchar 超過 8000,nvarchar 超過 4000 的字串相加,
請使用 MAX 才會正確哦!
參考資料
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^