Usuário com melhor resposta
Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AI" and "Latin1_General_CI_AS_KS_WS" in the equal to operation.

Pergunta
-
Boa tarde. Estou desenvolvendo uma procedure e esta dando esse erro "Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AI" and "Latin1_General_CI_AS_KS_WS" in the equal to operation."
Crio 2 Tabela temporaria, adiciono uns registro na primeira e depois ao tentar adicionar na segunda tabela usando a primeira na clausula WHERE esta dando esse erro.
DECLARE @Tabela_Objetos TABLE(Registro INT IDENTITY(1, 1), Objeto VARCHAR(100), ID_Tipo VARCHAR(2)) DECLARE @Tabela_Tipos TABLE(Registro INT IDENTITY(1, 1), Tipo VARCHAR(2), Descricao VARCHAR(100)) INSERT INTO @Tabela_Tipos VALUES('U', 'TABLE (user-defined)') INSERT INTO @Tabela_Tipos VALUES('V', 'VIEW') INSERT INTO @Tabela_Tipos VALUES('P', 'SQL STORED PROCEDURE') INSERT INTO @Tabela_Tipos VALUES('TR', 'SQL DML TRIGGER') --INSERT INTO @Tabela_Tipos VALUES('S', 'System base TABLE') --INSERT INTO @Tabela_Tipos VALUES('IT', 'Internal TABLE') INSERT INTO @Tabela_Tipos VALUES('FN', 'SQL scalar FUNCTION') INSERT INTO @Tabela_Tipos VALUES('IF', 'SQL inline TABLE-valued FUNCTION') INSERT INTO @Tabela_Tipos VALUES('TF', 'SQL TABLE-valued-FUNCTION') INSERT INTO @Tabela_Tipos VALUES('X', 'Extended STORED PROCEDURE') INSERT INTO @Tabela_Tipos VALUES('AF', 'Aggregate FUNCTION (CLR)') INSERT INTO @Tabela_Tipos VALUES('PC', 'Assembly (CLR) STORED PROCEDURE') INSERT INTO @Tabela_Tipos VALUES('FS', 'Assembly (CLR) scalar FUNCTION') INSERT INTO @Tabela_Tipos VALUES('FT', 'Assembly (CLR) TABLE-valued FUNCTION') INSERT INTO @Tabela_Tipos VALUES('TA', 'Assembly (CLR) DML TRIGGER') INSERT INTO @Tabela_Objetos SELECT Sys.Objects.Name, Sys.Objects.Type FROM Sys.Objects WHERE Sys.Objects.Type IN (SELECT Tipo FROM @Tabela_Tipos) ORDER BY Sys.Objects.Name
O que pode ser? Obrigado!
Respostas
-
- Marcado como Resposta DaviSaba segunda-feira, 13 de maio de 2013 18:41
Todas as Respostas
-
- Marcado como Resposta DaviSaba segunda-feira, 13 de maio de 2013 18:41
-
Gabriel obrigado! Eu sei o que é Collate.
Utilizando o seu exemplo que voce sugeriu do site do Gustavo eu fiz assim e funcionou:
INSERT INTO @Tabela_Objetos SELECT Sys.Objects.Name, Sys.Objects.Type FROM Sys.Objects WHERE Sys.Objects.Type COLLATE Latin1_General_CI_AI IN (SELECT Tipo COLLATE Latin1_General_CI_AI FROM @Tabela_Tipos) ORDER BY Sys.Objects.Name
Agradeço, valeu!