Pergunta

Eu tenho um monte de colunas NVARCHAR que eu suspeito conter dados perfeitamente armazenáveis ??em colunas VARCHAR. No entanto eu não posso simplesmente ir e mudar o tipo das colunas em VARCHAR e esperança para o melhor, eu preciso fazer algum tipo de verificação.

Eu quero fazer a conversão porque os dados é estático (isso não vai mudar no futuro) e as colunas são indexadas e se beneficiariam de um índice menor (varchar) em comparação com o índice atual (nvarchar).

Se eu simplesmente dizer

ALTER TABLE TableName ALTER COLUMN columnName VARCHAR(200)

então eu não vai obter um erro ou um aviso. dados Unicode será truncado / perdido.

Como posso verificar?

Foi útil?

Solução

Por que não lançar lá e para trás para ver o que os dados se perde?

Isto assume coluna é nvarchar (200) para iniciar com

SELECT *
FROM TableName
WHERE columnName <> CAST(CAST(columnName AS varchar(200)) AS nvarchar(200))

Outras dicas

Hmm interessante.

Eu não tenho certeza que você pode fazer isso em uma consulta SQL em si. Você está feliz em fazê-lo em código? Se assim for, você pode obter todos os registros, em seguida, um loop sobre todos os caracteres na string e cheque. Mas o homem é uma forma lenta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top