真剣に - VARCHAR(MAX)
8000 文字だけでなく、最大 2 GB のデータを保存できます.....
これを試してください:
DECLARE @myVar VARCHAR(MAX) = ''
DECLARE @ix INT = 1
WHILE @ix < 1000
BEGIN
set @myVar = @myVar + CAST('bla bla bla' AS VARCHAR(MAX))
SET @ix = @ix + 1
END
SELECT DATALENGTH(@myvar)
これはより高い値を返します 1000回繰り返した後、8000文字以上。
要点:varchar(max)
を使用している場合 、常にキャストする必要があります すべての文字列を varchar(max)
に 明示的に - この例で行ったように。それ以外の場合、SQL Server は "通常の" varchar
にフォールバックします 実際には 8000 文字に制限されています....