SQL Server 2000 時代,超過 8000 字節的文本只能用 TEXT/NTEXT/IMAGE,但它們不支持 REPLACE、SUBSTRING、CHARINDEX 等常用函數,更新子串需用晦澀的 READTEXT/WRITETEXT/UPDATETEXT,開發體驗極差。
SQL Server 2005 引入 VARCHAR(MAX)、NVARCHAR(MAX)、VARBINARY(MAX),容量高達 2GB,完全兼容所有內置字符串函數。
DECLARE @BigString VARCHAR(MAX)
SET @BigString = 'abc'
-- 直接使用 REPLACE、SUBSTRING、LEN 等
UPDATE MarketingDocuments
SET Document = REPLACE(Document, 'Old Slogan', 'New Slogan')
WHERE Document LIKE '%Old Slogan%'
MAX 類型可作為索引鍵(VARCHAR(MAX) 除外)、統計信息收集對象VARCHAR(MAX)/NVARCHAR(MAX)/VARBINARY(MAX)TEXT/NTEXT/IMAGE 列逐步遷移:ALTER TABLE ... ALTER COLUMN col VARCHAR(MAX)TEXT_IN_ROW 選項對 MAX 類型無效,由引擎自動管理MAX 類型徹底結束了「大值難操作」的歷史,是 SQL Server 2005 最具開發體驗提升的特性之一。