SQL Server 2008 - HashBytes berechnete Spalte

Ich verwende SQL Server 2008.

Ich habe einNVARCHAR (MAX) Spalte mit dem Namen Title und ich möchte einen eindeutigen Index dafür hinzufügen. Da die Spalte größer als 900 Byte ist, habe ich beschlossen, eine berechnete HashBytes-Spalte zu erstellen (basierend auf der Empfehlung für StackOverflow).

Wie erstelle ich die HashBytes-Spalte?

alter table Softs add TitleHash AS (hashbytes('SHA1',[Title])) PERSISTED;

dies hat funktioniert und die berechnete Spalte wurde erstellt.

ABER wenn ich versuche, einen Index hinzuzufügen, erhalte ich den folgenden Fehler:

Adding the selected columns will result in an index key with a maximum length of 8000 bytes.  
The maximum permissible index length is 900 bytes. 
INSERT and UPDATE operations fail if the combined value of the key columns exceeds 900 bytes.  
Do you want to continue?

Diese Abfrage wird zum Erstellen des Index verwendet:

CREATE NONCLUSTERED INDEX [UIX_TitleHash] ON [dbo].[Softs] 
(
    [TitleHash] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO

Antworten auf die Frage(2)

Ihre Antwort auf die Frage