2013-03-07 39 views
0

我只是嘗試這樣做,得到了有用的信息,即如何爲SQL Server中的字符串列創建非聚集索引?

列「用戶名」表「用戶」是一種類型,它是 無效用作索引中的鍵列。

用戶名是nvarchar(最大)列。

+3

nvarchar(max)不能用作約束/索引。看看這個類似的問題:http://stackoverflow.com/questions/1184490/why-cant-i-put-a-constraint-on-nvarcharmax – squillman 2013-03-07 02:47:16

+2

爲什麼你想要一個'nvarchar(最大)''柱?你爲什麼使用'nvarchar(max)'作爲用戶名?你認爲有人想在他們的用戶名中輸入十億個字符嗎?可能'nvarchar(50),(64)或(255)'就足夠了。 '(320)'是否代表電子郵件地址。我想知道Unicode是否真的是這裏的要求。 – 2013-03-07 02:52:47

+0

甚至可以在多種語言中使用十億個字符。 – 2013-03-07 05:38:03

回答

2

您不能將索引添加到nvarchar(max)或varchar(max)列,但它可以是索引的一部分。

您可以將其包含在索引中,但該索引需要離線創建/重建。

從你的列名'用戶名'進行猜測我會將列類型更改爲像nvarchar(50)那樣小的東西。 nvarchar(max)數據類型可以存儲高達4Gb的文本,並用於更多的全文存儲(在這種情況下,您可以設置全文搜索)。

+1

這也將使索引巨大和不可維護。 – 2013-03-07 02:51:20

相關問題