SnowConvert AI - Servidor SQL - Azure Synapse - QUOTED_IDENTIFIER¶
Applies to
SQL Server
Azure Synapse Analytics
Descrição¶
Esta instrução controla se as aspas duplas são usadas para delimitar identificadores (como nomes de tabelas, nomes de colunas etc.) ou literais de cadeia de caracteres no servidor SQL. Se SET QUOTED_IDENTIFIER estiver ON, os identificadores podem ser delimitados por aspas duplas e os literais devem ser delimitados por aspas simples. Se estiver OFF, as aspas duplas são tratadas como delimitadores literais de cadeia de caracteres. Acesse SET QUOTED_IDENTIFIER para saber mais sobre esta instrução.
Sintaxe do Transact-SQL¶
Comparação de comportamentos¶
Comportamento do servidor SQL¶
No servidor SQL, a configuração SET QUOTED_IDENTIFIER determina como as aspas duplas são interpretadas:
** Se estiver ON (padrão)**: Identificadores delimitados por aspas duplas, permitindo caracteres especiais e palavras-chave reservadas em nomes de objetos
Se estiver OFF: As aspas duplas são tratadas como delimitadores literais de cadeia de caracteres (semelhantes às aspas simples)
Comportamento do Snowflake¶
O Snowflake sempre trata aspas duplas como delimitadores identificadores (equivalentes à configuração do servidor SQL QUOTED_IDENTIFIER ON). Não há equivalente para a configuração OFF. As principais diferenças incluem:
Diferenciação entre maiúsculas e minúsculas:
Identificadores sem aspas são automaticamente convertidos em maiúsculas
Identificadores entre aspas preservam a caixa exata e há diferenciação entre maiúsculas e minúsculas
Parâmetro QUOTED_IDENTIFIERS_IGNORE_CASE: Controla a diferenciação de letras maiúsculas e minúsculas para identificadores entre aspas
Amostra de padrões da origem¶
SET QUOTED_IDENTIFIER ON¶
Se QUOTED_IDENTIFIER estiver ON no servidor SQL, as aspas duplas podem ser usadas para delimitar identificadores com espaços ou caracteres especiais.
SQL Server¶
Snowflake¶
Exemplo de diferença
Suponha que você tenha migrado uma tabela de um banco de dados do servidor SQL com um agrupamento que não diferencia maiúsculas de minúsculas (_CI):
Servidor SQL (com agrupamento _CI):¶
Neste caso, o agrupamento _CI torna as duas instruções SELECT intercambiáveis.
Snowflake:¶
O comportamento do Snowflake é diferente porque respeita a caixa do identificador entre aspas por padrão. Isso pode ser acessado alterando a sessão.
Se você quiser definir o parâmetro no nível da conta, você pode usar o seguinte comando:
Isso definirá o parâmetro para todas as sessões associadas à conta. Para mais informações, verifique a seguinte documentação;
SET QUOTED_IDENTIFIER OFF¶
Se QUOTED_IDENTIFIER estiver OFF no servidor SQL, as aspas duplas são tratadas como delimitadores de cadeia de caracteres.
SQL Server¶
Snowflake¶
Considerações sobre migração¶
Revisar maiúsculas e minúsculas do identificador: Ao migrar para o Snowflake, verifique se o uso de maiúsculas e minúsculas é consistente, especialmente para identificadores entre aspas
Literais de cadeia de caracteres: Substitua literais de cadeia de caracteres entre aspas duplas por literais entre aspas simples
Use QUOTED_IDENTIFIERS_IGNORE_CASE: Considere definir esse parâmetro como
TRUEno início da migração para reduzir problemas de diferenciação entre maiúsculas e minúsculasTeste minuciosamente: Após a migração, verifique se todas as referências de objetos funcionam corretamente