omportamento de índice exclusivo, coluna varchar e espaços em bran

Estou usando o Microsoft SQL Server 2008 R2 (com os service packs / correções mais recentes) e o agrupamento do banco de dados é SQL_Latin1_General_CP1_CI_A

O seguinte código:

SET ANSI_PADDING ON;
GO

CREATE TABLE Test (
   Code VARCHAR(16) NULL
);
CREATE UNIQUE INDEX UniqueIndex
    ON Test(Code);

INSERT INTO Test VALUES ('sample');
INSERT INTO Test VALUES ('sample ');

SELECT '>' + Code + '<' FROM Test WHERE Code = 'sample        ';
GO

produz os seguintes resultados:

(1 linha (s) afetada)

Msg 2601, Nível 14, Estado 1, Linha 8

Não é possível inserir linha de chave duplicada no objeto 'dbo.Test' com o índice exclusivo 'UniqueIndex'. O valor da chave duplicada é (amostra).

A instrução foi encerrada

‐‐‐‐‐‐‐‐‐‐‐

> amostra <

(1 linha (s) afetada)

As minhas perguntas são:

Presumo que o índice não possa armazenar espaços à direita. Alguém pode me indicar documentação oficial que especifica / define esse comportamento? Existe uma configuração para alterar esse comportamento, ou seja, fazê-lo reconhecer 'amostra' e 'amostra' como dois valores diferentes (que são, a propósito) para que ambos possam estar no índicPor que diabos o SELECT está retornando uma linha? O SQL Server deve estar fazendo algo realmente engraçado / inteligente com os espaços na cláusula WHERE, porque se eu remover a exclusividade do índice, os dois INSERTs serão executados OK e o SELECT retornará duas linhas!

Qualquer ajuda / ponteiro na direção certa seria apreciada. Obrigado

questionAnswers(2)

yourAnswerToTheQuestion