2011-08-07 97 views

回答

27

ntext類型已棄用,textimage也是如此。 Microsoft建議分別用nvarchar(max)varchar(max)varbinary(max)替換它們。因此,使用nvarchar(max)

參考:

1

爲NVARCHAR(MAX)的默認設置爲它的文本值存儲在表結構中,除非文中是8000個字節(它是4000雙字節字符),此時它的行爲就像一個NTEXT並將文本值存儲在LOB中,並在表中存儲指向文本的指針 - 這會導致性能更差。

總之,只要可以丟失長度超過8K的字節,就可以使用NVARCHAR(4000)

+2

最大明確限制'nvarchar'是4000 8000是'varchar'。 –

+0

thx。編輯的答案反映了這一點(即8K = 4K雙字節字符) – Bohemian

+2

何時它會「OK」丟失數據? –

7

使用nvarchar(MAX)的優點是,您可以在nvarchar(MAX)上運行諸如Replace,Left,Len等函數,但不能在ntext上運行。 ntext局部變量也不能在存儲過程中創建,但nvarchar(MAX)可以。

NTEXT也很可能在未來有利於爲nvarchar(MAX)的被廢棄看到:

ntext, text, and image

相關問題