如果我選擇nvarchar(MAX),我不知道是否有字符數的限制,我不知道我需要多少個字符。我應該將HTML存儲爲nvarchar(MAX)還是ntext?
這裏使用的標準數據類型是什麼?我正在使用SQL Server 2008 R2
如果我選擇nvarchar(MAX),我不知道是否有字符數的限制,我不知道我需要多少個字符。我應該將HTML存儲爲nvarchar(MAX)還是ntext?
這裏使用的標準數據類型是什麼?我正在使用SQL Server 2008 R2
ntext
類型已棄用,text
和image
也是如此。 Microsoft建議分別用nvarchar(max)
,varchar(max)
和varbinary(max)
替換它們。因此,使用nvarchar(max)
。
參考:
爲NVARCHAR(MAX)的默認設置爲它的文本值存儲在表結構中,除非文中是8000個字節(它是4000雙字節字符),此時它的行爲就像一個NTEXT並將文本值存儲在LOB中,並在表中存儲指向文本的指針 - 這會導致性能更差。
總之,只要可以丟失長度超過8K的字節,就可以使用NVARCHAR(4000)
。
使用nvarchar(MAX)的優點是,您可以在nvarchar(MAX)上運行諸如Replace,Left,Len等函數,但不能在ntext上運行。 ntext局部變量也不能在存儲過程中創建,但nvarchar(MAX)可以。
NTEXT也很可能在未來有利於爲nvarchar(MAX)的被廢棄看到:
最大明確限制'nvarchar'是4000 8000是'varchar'。 –
thx。編輯的答案反映了這一點(即8K = 4K雙字節字符) – Bohemian
何時它會「OK」丟失數據? –