SnowConvert AI - Problemas do SQL Server-Azure Synapse¶
Applies to
SQL Server
Azure Synapse Analytics
Sybase
SSC-EWI-TS0001¶
Corpo de função definida pelo usuário não gerado
Gravidade¶
Crítico
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI aparece quando o SnowConvert AI trata de uma exceção crítica que faz com que o corpo da função não seja gerado durante sua tradução.
Exemplo de código¶
SQL Server¶
Snowflake¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0002¶
O ANSI_PADDING OFF não é compatível com o Snowflake.
Gravidade¶
Low
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
No Transact-SQL, a instrução SET ANSI_PADDING OFF remove os espaços finais na inserção de tipos de dados char. Visto que SET ANSI_PADDING OFF não é uma configuração diretamente configurável no Snowflake, o SnowConvert AI vai gerar este EWI.
Exemplo de código¶
SQL Server¶
Snowflake¶
Práticas recomendadas¶
Adicione
RTRIMa todas as inserções de tipo de dadosCHAR()para remover este problema, incluindo o código ETL.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0003¶
O ANSI_WARNINGS OFF não é compatível com o Snowflake.
Gravidade¶
Low
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
No Transact-SQL, a instrução SET ANSI_WARNINGS OFF desabilita avisos como divisão por zero ou estouro aritmético. Visto que SET ANSI_WARNINGS OFF não é uma configuração diretamente configurável no Snowflake, o SnowConvert AI vai gerar este EWI.
Exemplo de código¶
SQL Server¶
Snowflake¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0009¶
A seguinte transação pode conter transações aninhadas, o que é considerado um padrão complexo incompatível com o Snowflake.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
High
Descrição¶
Este erro é adicionado para indicar quando uma transação pode conter transações aninhadas. No SQL Server, as transações podem ser aninhadas. Isto significa que é possível iniciar uma nova transação dentro de uma transação existente. Se após a primeira instrução BEGIN executarmos outra, uma nova transação será aberta e a contagem da transação atual será aumentada em um.\
Por outro lado, isto não é compatível com o Snowflake; o que acontecerá é que a segunda instrução BEGIN será ignorada e ainda haverá apenas uma transação. Para obter mais informações, consulte Transações do SQL Server.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
No Snowflake, as transações aninhadas não causarão erros de compilação; elas serão simplesmente ignoradas. Você pode acessar os relatórios de avaliação para verificar se as transações aninhadas estão presentes.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0010¶
A expressão de tabela comum na exibição não é compatível com o Snowflake.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
High
Descrição¶
Este erro é adicionado quando um CTE inválido está dentro de uma exibição, já que exibições são representações materializadas de consultas, o que significa que elas definem apenas como os dados são recuperados e apresentados, não como são manipulados.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
EWI relacionado¶
SSC-EWI-0021: Sem suporte.
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0013¶
Coluna computada transformada
Nota
Este EWI está obsoleto, consulte a documentação SSC-FDM-TS0013
Gravidade¶
Low
Descrição¶
Este aviso é adicionado quando uma coluna computada do SQL Server é transformada em seu equivalente do Snowflake. É adicionado porque, em alguns casos, a equivalência funcional pode ser afetada.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Nenhuma ação adicional do usuário é necessária; ele é apenas informativo.
Adicione alterações manuais à expressão não transformada.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0015¶
O tipo de dados não é compatível com o Snowflake
Gravidade¶
Medium
Descrição¶
Este aviso é adicionado quando um SQL A coluna do servidor tem um tipo incompatível com o Snowflake.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Verifique a documentação de tipos de dados do Snowflake para encontrar um equivalente para o tipo de dados.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0016¶
Tradutor da função escalar ODBC pendente
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado quando o SnowConvert AI encontra uma função escalar ODBC dentro do código de entrada.\ As funções definidas pelo usuário são incompatíveis com a função escalar ODBC.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
EWI relacionado¶
SSC-EWI-0073: Revisão de equivalência funcional pendente.
Práticas recomendadas¶
Nenhuma ação adicional do usuário é necessária; ele é apenas informativo.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0017¶
O mascaramento é incompatível
Gravidade¶
Low
Descrição¶
Este EWI é adicionado quando o SnowConvert AI encontra uma coluna mascarada dentro de uma instrução CREATE TABLE. Esta funcionalidade não funciona adicionando a opção à declaração da coluna. É necessário um esforço manual para ter o mesmo comportamento que o SQL Server.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
O SnowConvert AI não está gerando MASKING POLICIES na versão atual, portanto, elas têm que ser criadas manualmente. Por exemplo,
a primeira etapa é criar uma função de administrador de política de mascaramento.
A segunda é conceder os privilégios necessários à função criada.
A próxima etapa é criar as funções de política de mascaramento.
Nota
Para fins de amostra, usamos alguns exemplos de funções de mascaramento em SQL Server e as traduzimos manualmente para seu equivalente em Snowflake.
A etapa final é adicionar a política de mascaramento à coluna que originalmente tinha a opção de mascaramento em SQL Server.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0023¶
Opção em massa incompatível
Gravidade¶
Low
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado quando não foi possível mapear alguma opção em um BULKINSERT. As opções em massa traduzidas devem ser refletidas como opções FILE FORMAT.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Acesse o SnowSQL CLI guia do usuário.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
EWI relacionado¶
SSC-FDM-TS0004: PUT instrução incompatível na UI.
SSC-EWI-TS0024¶
Transformação incompleta para inserção em massa
Gravidade¶
Low
Descrição¶
Este EWI é adicionado quando um BULK INSERT dentro de um procedimento armazenado não foi identificado, de modo que as dependências para a transformação completa não sejam geradas. Também o COPY INTO transformado recupera o arquivo de um tempStage que precisa ser criado manualmente.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
To retrieve the file, manually create a STAGE and a FILE FORMAT.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0025¶
Função ERROR_SEVERITY transformada
Gravidade¶
Low
Nota
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or –PLTargetLanguage JavaScript
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado quando a função interna ERROR_SEVERITY está traduzida. Por padrão, a função retornará 16, pois é a gravidade mais comum no SQL Server. O UDF gerado deve recuperar
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0026¶
com Delete Query transformada em Create Table.
Gravidade¶
Low
Descrição¶
Este EWI é adicionado quando uma expressão de tabela comum com uma Delete From é transformada em Create ou Replace Table.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Não são necessárias ações adicionais do usuário.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0032¶
Inserção em massa parcialmente traduzida
Aviso
O EWI só é gerado quando o Javascript é a linguagem de destino para procedimentos armazenados. Este recurso de tradução está obsoleto, pois o Script Snowflake é a linguagem de destino recomendada para procedimentos armazenados.
Gravidade¶
High
Nota
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or –PLTargetLanguage JavaScript
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado a um literal que era originalmente uma concatenação, quando o código contido tinha uma instrução BULK INSERT. O comando PUT resultante da tradução de BULK INSERT é incompatível na execução do código que era originalmente SQL Dynamic.
Por esta razão, o comando PUT deve ser extraído do código de saída e executado manualmente fora do procedimento que o contém. Tenha em mente que se houver muitas instruções BULK INSERT em sentenças de Dynamic SQL dentro do procedimento, é aconselhável dividir este procedimento para poder executar manualmente o comando PUT correspondente para cada BULK INSERT traduzido.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Extraia o comando
PUTresultante da instrução DynamicBULK INSERTe execute-a antes de chamar o procedimento.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0034¶
Cláusula RETURNS incompleta devido à falta de símbolos
Gravidade¶
High
Descrição¶
Este EWI é adicionado ao código de saída quando a cláusula RETURNS TABLE de um CREATE FUNCTION não poderia ser gerada corretamente. Isso acontece quando as colunas que devem ser especificadas na cláusula RETURNS TABLE resultante não pode ser inferida por SnowConvert AI, deixando a cláusula RETURNS TABLE vazia.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
As causas para esse problema podem variar. Certifique-se de incluir todos os objetos de que seu código precisa. Se o problema persistir, mesmo que a migração tenha acesso a todos os objetos necessários, entre em contato conosco com informações sobre seu cenário específico.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0035¶
Declarar uma variável de cursor que nunca é inicializada é incompatível.
Gravidade¶
Medium
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Currently, a Cursor Variable that is declared but never initialized is not supported by Snowflake. Thus, the EWI is added, and the code commented out.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0036¶
O Script Snowflake só é compatível com cursores locais.
Gravidade¶
Medium
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado quando são identificados outros cursores que não sejam cursores locais. Atualmente, o Script Snowflake só é compatível com cursores locais. Assim, todos os cursores são traduzidos como cursores locais.
Exemplo de código¶
Código de entrada:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0037¶
Os cursores do Script Snowflake não são roláveis.
Gravidade¶
Medium
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Os cursores do Script Snowflake não são roláveis. Atualmente, somente FETCH NEXT é compatível.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0039¶
Várias instruções SET encontradas para o mesmo cursor.
Gravidade¶
Medium
Descrição¶
Este EWI é adicionado quando várias instruções SET são encontradas para o mesmo cursor. Todas as instruções SET adicionais também são transformadas em comentário. Isso acontece porque ter várias instruções SET para o mesmo cursor não é válida no Script Snowflake.
Exemplo de código:¶
Este EWI é adicionado quando várias instruções SET são encontradas para o mesmo cursor. Todas as instruções SET adicionais também são transformadas em comentário. Isso acontece porque ter várias instruções SET para o mesmo cursor não é válida no Script Snowflake.¶
Exemplo de código:¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0041¶
Os métodos de tipo de dados XML são incompatíveis com o Snowflake.
Gravidade¶
Medium
Descrição¶
Este EWI é adicionado aos seguintes métodos de tipo de dados XML que são incompatíveis com o Snowflake SQL:
Valor
Consulta
Existir
Modificar
Nós
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Considere o uso de UDFs para emular o comportamento do código-fonte
Você pode verificar esta documentação e revisar algumas abordagens possíveis para trabalhar com tipos de dados XML no Snowflake.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0043¶
WITH XMLNAMESPACES não é compatível com o Snowflake.
Gravidade¶
Medium
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado à cláusula WITH XMLNAMESPACES , que não é compatível com o Snowflake SQL
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Considere o uso de UDFs para emular o comportamento do código-fonte. O código a seguir fornece sugestões de UDFs que podem ser usados para conseguir recriar o comportamento original:
SQL Server¶
Snowflake SQL¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
EWI relacionado¶
SSC-PRF-TS0001: Aviso de desempenho - recursão de CTE não verificada. Pode exigir uma palavra-chave recursiva.
A cláusula SSC-EWI-TS0044: FOR XML não é compatível com o Snowflake.
SSC-EWI-TS0015: Tipo de dados incompatíveis com o Snowflake
SSC-EWI-TS0044¶
A cláusula FOR XML não é compatível com o Snowflake.
Gravidade¶
Crítico
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado à cláusula FOR XML , que não é compatível com o Snowflake SQL
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Considere o uso de UDFs para emular o comportamento do código-fonte. O código a seguir fornece sugestões de UDFs que podem ser usados para conseguir recriar o comportamento original:
SQL Server
Consulta¶
Resultado¶
Snowflake¶
Consulta¶
Resultado¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0045¶
A instrução rotulada não é compatível com o Script Snowflake.
Gravidade¶
Low
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado a todos os LABELS usados com a instrução GOTO no SQL Server.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
EWI relacionado¶
SSC-EWI-0073: Revisão de equivalência funcional pendente.
SSC-EWI-TS0046¶
A tabela do sistema não é compatível com o Snowflake.
Gravidade¶
Medium
Descrição¶
This EWI is added when referencing SQL Server system tables not supported or without equivalent in Snowflake SQL. See the supported and unsupported system tables reference for the complete list.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0047¶
A mensagem de erro RAISERROR pode ser diferente devido ao formato da cadeia de caracteres do SQL Server.
Nota
Este EWI está obsoleto, consulte a documentação SSC-FDM-TS0019
Gravidade¶
Low
Descrição¶
Este EWI é adicionado para notificar que a mensagem de erro RAISERROR pode ser diferente devido ao formato da cadeia de caracteres do SQL Server.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0049¶
A tradução de várias linhas do corpo If planejada para ser entregue no futuro.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Medium
Descrição¶
A maioria dos casos em instruções IF contendo um Begin ... Bloco End dentro de seu corpo é compatível. Este é um cenário bem-sucedido (nenhum SSC-EWI-TS0049 gerado).
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Nota
Em um exemplo de código geral (como o na parte superior), a conversão é feita com sucesso. Mas há alguns casos extremos em que a instrução «IF» não é convertida e o EWI será gerado.
Suporte manual¶
Caso 1: Instrução única¶
Para esses casos, a transformação seria simples, pois a instrução transformada apareceria em uma cláusula de seleção
Caso 2: Instruções múltiplas¶
Para casos em que várias instruções estão sendo transformadas, deve-se transformar a instrução N, e usá-la como a tabela de origem para a instrução N+1.
Caso 3: Instruções de múltiplos conjuntos¶
Para estes casos, será necessário replicar uma transformação para cada instrução definida.
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0055¶
A restrição padrão foi transformada em comentário e pode ter sido adicionada a uma definição de tabela.
Nota
Este EWI está obsoleto, consulte a documentação SSC-FDM-TS0020.
Gravidade¶
Medium
Descrição¶
Este EWI é adicionado quando a restrição padrão está presente em uma instrução Alter table.
Atualmente, essa restrição é incompatível. Uma solução alternativa disponível para transformá-la é quando a tabela é previamente definida como Alter Table, desta forma identificamos as referências, e a restrição padrão é unificada na definição da tabela; caso contrário, a restrição é apenas transformada em comentário.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Nota
Se todo o conteúdo de Alter Table for inválido, ela será transformada em comentário.
Problemas conhecidos¶
Quando diferentes restrições padrão são declaradas na mesma coluna, apenas a primeira é refletida na instrução Create Table.
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0056¶
Um MASKING POLICY foi criado como um substituto para MASKED WITH.
Nota
Este EWI está obsoleto, consulte a documentação SSC-FDM-TS0021.
Gravidade¶
Low
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado quando a instrução Alter Table contém uma cláusula MASKED WITH. O motivo pelo qual isto é adicionado é informar que um valor MASKING POLICY aproximado foi criado como um substituto para a função MASKED WITH.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Nota
MASKING POLICY será criada antes da instrução ALTER TABLE. E espera-se que tenha um comportamento aproximado. Alguns ajustes podem ser necessários em relação a funções e privilégios de usuário. <!– TODO: You can relate to Broken link broken-reference «mention» for further details.>
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0057¶
O usuário deve previamente definir a função de mascaramento.
Nota
Este EWI está obsoleto, consulte a documentação SSC-FDM-TS0022
Gravidade¶
Low
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI ocorre quando uma MASKING POLICY é criada e uma função ou privilégio deve ser vinculado a ela para que o mascaramento de dados possa funcionar corretamente.
Exemplo de código¶
Código de entrada¶
Código gerado:¶
Nota
As shown on line 6, there is a placeholder where the defined roles can be placed. There is room for one or several values separated by commas. Also, here, the use of single quotes is mandatory for each of the values.
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0060¶
Intervalo de data e hora incompatível no Snowflake.
Gravidade¶
Medium
Descrição¶
Este EWI é adicionado quando uma das seguintes partes de tempo é usado como parâmetro para uma função relacionada à data, pois não são compatíveis com o Snowflake. Para mais informações, vá para «Partes de data e hora com suporte» (Funções de data e hora | Documentação do Snowflake).
Exemplo de código¶
Código de entrada¶
Código gerado:¶
Práticas recomendadas¶
Um UDF poderia ser criado para extrair manualmente partes de tempo incompatíveis com o Snowflake.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0061¶
ALTER COLUMN incompatível
Gravidade¶
Medium
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado sempre que há uma instrução ALTER COLUMN incompatível
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0063¶
Fuso horário incompatível com o Snowflake.
Gravidade¶
Crítico
Descrição¶
Este EWI é adicionado quando há fusos horários incompatíveis com o Snowflake
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Uma função definida pelo usuário pode ser criada para dar compatibilidade a vários fusos horários.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0067¶
Parâmetros inválidos na função com valor de tabela OPENXML.
Gravidade¶
Crítico
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado quando há parâmetros inválidos na OPENXML, especificamente quando não é possível acessar o caminho XML.
Para evitar este EWI, envie o caminho explícito do nó por meio dos parâmetros.
Código de entrada:¶
Código gerado:¶
Código de entrada (parâmetro explícito)¶
Código gerado (parâmetro explícito)¶
Práticas recomendadas¶
Tente ver se o caminho pode ser explicitamente passado como um parâmetro.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0070¶
CURRENT_TIMESTAMP na instrução At Time Zone pode ter um comportamento diferente em certos casos.
Nota
Este EWI está obsoleto, consulte a documentação SSC-FDM-TS0024.
Descrição¶
Este EWI é adicionado quando At Time Zone tem o CURRENT_TIMESTAMP. Isso ocorre porque o resultado pode ter resultados diferentes em alguns casos.
A principal diferença é que no SQL Server, CURRENT_TIMESTAMP retorna a data e hora atual do sistema no fuso horário do servidor e, no Snowflake, CURRENT_TIMESTAMP retorna a data e hora atual no fuso horário UTC (Horário Universal Coordenado).
Código de entrada:¶
SQL Server¶
Resultado¶
2024-02-08 16:52:55.317 -10:00
Código gerado:¶
Snowflake¶
Resultado¶
2024-02-08 06:53:46.994 -1000
Práticas recomendadas¶
Este é um exemplo se você quiser manter o mesmo formato no Snowflake.
SQL Server¶
Resultado¶
2024-02-08 16:33:49.143 -10:00
No Snowflake, você pode usar ALTER SESSION para alterar o fuso horário padrão. Por exemplo:
Snowflake¶
Resultado¶
2024-02-08 16:33:49.143
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0072¶
A instrução RETURN será ignorada devido à instrução RETURN anterior
Gravidade¶
Baixo
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado quando as instruções SELECT e os parâmetros OUPUT devem ser retornados. Nesse caso, os conjuntos de resultados das instruções SELECT são priorizadas.
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Remova a instrução RETURN que deve ser ignorada.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
EWI relacionado¶
SSC-FDM-0020: Vários conjuntos de resultados são retornados em tabelas temporárias;
SSC-EWI-TS0073¶
A mensagem de erro poderia ser diferente no Snowflake
Nota
Este EWI está obsoleto, consulte a documentação SSC-FDM-TS0023
Gravidade¶
Low
Descrição¶
Este EWI é adicionado na transformação de ERROR_MESSAGE(). A mensagem exata do erro poderia mudar no Snowflake.
Código de entrada:¶
Código gerado¶
Recomendação¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com.
SSC-EWI-TS0074¶
O resultado da conversão pode ser diferente da função TRY_CAST/TRY_CONVERT devido à falta de dependências
Gravidade¶
Low
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este EWI é adicionado na transformação das funções TRY_CAST e TRY_CONVERT. O resultado exato dessas funções pode mudar no Snowflake devido à falta de dependências (o SnowConvert AI não conseguiu resolver alguns tipos de dados). Isto poderia ocorrer porque a dependência não estava no código-fonte.
Código de entrada:¶
Código gerado¶
Recomendação¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com.
SSC-EWI-TS0075¶
Procedimento interna incompatível
Gravidade¶
Medium
Descrição¶
A tradução de procedimentos internos é incompatível atualmente.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Nenhuma ação do usuário final é necessária.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0076¶
Os parâmetros padrão podem precisar ser reordenados
Nota
This EWI is deprecated. SnowConvert AI now automatically reorders default parameters to the end of the parameter list. Please refer to SSC-FDM-0041 for the updated behavior.
Gravidade¶
Medium
Descrição¶
Os parâmetros padrão podem precisar ser reordenados. O Snowflake só é compatível com parâmetros padrão no final das declarações de parâmetros.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Nenhuma ação do usuário final é necessária.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0077¶
Agrupamento incompatível
Gravidade¶
Low
Descrição¶
Esta mensagem é exibida quando há uma cláusula de agrupamento que não é compatível com o Snowflake.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Não são necessárias ações adicionais do usuário.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0078¶
Valor padrão não permitido no Snowflake.
Gravidade¶
Medium
Descrição¶
Esse erro é adicionado ao código quando expressões como chamadas de função, nomes de variáveis ou constantes nomeadas seguem a opção padrão.
O Snowflake só é compatível com constantes explícitas, como números ou cadeias de caracteres.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0079¶
Comando incompatível do console do banco de dados
Gravidade¶
Medium
Descrição¶
Este EWI é adicionado quando o SnowConvert AI encontra uma instrução DBCC dentro do código de entrada.\ A maioria das instruções DBCC é incompatível com o Snowflake.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Nenhuma ação adicional do usuário é necessária; ele é apenas informativo.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0080¶
A alteração do contexto de execução em tempo de execução é incompatível com o Snowflake
Gravidade¶
High
Descrição¶
Usuários do SQL Server pode usar o comando EXECUTE AS para mudar temporariamente o contexto de execução, isso modifica os privilégios de execução e afeta os resultados de funções dependentes de contexto, como USER_NAME(). O comando REVERT pode ser usado para restaurar o contexto anterior à última EXECUTE AS.
O Snowflake só é compatível com a definição de um contexto de execução em procedimentos, usando as instruções CREATE PROCEDURE ou ALTER PROCEDURE. A alteração do contexto em tempo de execução é incompatível.
Exemplo de código¶
Código de entrada:
Código de saída:
Práticas recomendadas¶
Refatore o código para que funcione sem precisar mudar o contexto.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0081¶
O uso de uma junção completa em uma instrução de exclusão é incompatível
Descrição¶
Ao transformar a instrução DELETE, o SnowConvert AI extrai as referências de tabela encontradas na cláusula FROM da instrução e as move para a cláusula USING da instrução de exclusão do Snowflake.
The following EWI warns the user about the limitations of the outer join (+) syntax in Snowflake. To preserve the LEFT and RIGHT JOINs used in the original code, outer join syntax (+) is added to the conditions to indicate such behavior. However, in Snowflake, the (+) syntax can’t be used to indicate FULL JOINs. For more information, see Joins in the WHERE clause.
Código de exemplo¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Verifique a lógica de seu FULL JOIN, pode ser possível reescrevê-lo como outro tipo de JOIN. Por exemplo, o código incluído no código de exemplo é essencialmente o mesmo que um LEFT JOIN:
Entrada:
Saída:
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0082¶
CROSS APPLY foi convertido em LEFT OUTER JOIN e requer validação manual.
Descrição¶
A validação manual é necessária porque a conversão de CROSS APPLY em LEFT OUTER JOIN pode levar a resultados incorretos ou comportamentos inesperados no Snowflake. Embora as duas funções possam parecer semelhantes, elas tratam certas situações de forma diferente, especialmente quando a subconsulta não tem correspondências ou a subconsulta está correlacionada com a tabela externa.
Código de exemplo¶
Dados de configuração¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Principais cenários em que LEFT OUTER JOIN Pode falhar¶
Comportamento de filtragem: se o
CROSS APPLYoriginal destinava-se a filtrar as linhas da tabela principal que não tinham correspondências na subconsulta, umLEFT OUTER JOINnão replicará este comportamento. Em vez disso, incluirá essas linhas com valoresNULLpara as colunas unidas, o que pode não ser o resultado pretendido.Subconsultas correlacionadas:
CROSS APPLYfoi projetado especificamente para dar compatibilidade a subconsultas correlacionadas, em que a subconsulta faz referência a colunas da consulta externa. UmaLEFT OUTER JOINpadrão não é compatível com esse padrão da mesma maneira. A tentativa de converter umCROSS APPLYcorrelacionado em umaLEFT OUTER JOINpode levar a erros de sintaxe, produtos cartesianos (linhas duplicadas) ou resultados logicamente incorretos.Diferenças do conjunto de resultados: a semântica de
CROSS APPLYeLEFT OUTER JOINdiferem, especialmente quando a subconsulta não retorna nenhuma linha.CROSS APPLYexcluirá tais linhas do resultado, enquantoLEFT OUTER JOINirá incluí-las com valoresNULL.
Recomendação: sempre revise e teste a saída das consultas em que CROSS APPLY foi convertido em LEFT OUTER JOIN para garantir a exatidão.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0083¶
Error Message¶
ROLLBACK TRANSACTION requires the appropriate setup to work as intended.
Gravidade¶
Low
Descrição¶
This EWI is generated when a ROLLBACK TRANSACTION statement is encountered, indicating that SnowConvert has successfully transformed the statement into a Snowflake-compatible format. However, the transformation requires manual verification because Snowflake’s transaction rollback behavior differs significantly from SQL Server’s ROLLBACK TRANSACTION functionality.
Exemplo de código¶
Input (SQL Server):¶
Output (Snowflake Scripting):¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0085¶
INSERT WITH EXECUTE statement requires manual review.
Gravidade¶
Medium
Descrição¶
This issue is generated when SnowConvert AI encounters an INSERT ... EXECUTE statement that cannot be automatically transformed. In SQL Server, INSERT ... EXEC inserts the result set of a stored procedure or dynamic SQL into a table. Snowflake does not support this syntax directly. When the statement appears at the top level (outside a stored procedure), SnowConvert AI cannot apply its standard transformation pattern and flags the statement for manual review.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Rewrite the logic using Snowflake Scripting: call the procedure separately, capture its result with
RESULT_SCAN(LAST_QUERY_ID()), and thenINSERT INTO ... SELECTfrom the result set.If the procedure returns a fixed schema, consider using a temporary table or
TABLE()function to capture the output.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0086¶
OPENQUERY is not supported in Snowflake.
Gravidade¶
High
Descrição¶
This issue is generated when SnowConvert AI encounters an OPENQUERY function. In SQL Server, OPENQUERY executes a pass-through query on a linked server and returns the result as a table. Snowflake does not have an equivalent linked server or OPENQUERY mechanism. The statement is preserved as-is with an EWI marker for manual migration.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Replace
OPENQUERYwith Snowflake external tables, external stages, or data sharing to access data from external sources.If the linked server points to another database, consider migrating that data into Snowflake or using Snowflake’s connector ecosystem (e.g., Snowflake Connector for Oracle).
For real-time access patterns, evaluate Snowflake External Network Access or External Functions.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0087¶
GOTO is not supported in Snowflake.
Gravidade¶
High
Descrição¶
This issue is generated when SnowConvert AI encounters a GOTO statement inside a stored procedure. SQL Server supports GOTO for unconditional jumps to labeled statements within a procedure. Snowflake Scripting does not support GOTO or labeled jump targets. The GOTO statement is preserved with an EWI marker, and the associated labels also receive a separate EWI (SSC-EWI-TS0045).
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Refactor
GOTO-based control flow into structured constructs such asIF/ELSE,CASE,LOOP, or by splitting the procedure into smaller procedures.For simple pass/fail patterns like the example above, replace the
GOTOlogic with anIF/ELSEIF/ELSEblock.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0088¶
Unsupported sequence options were removed during conversion.
Gravidade¶
Low
Descrição¶
This issue is generated when SnowConvert AI encounters a CREATE SEQUENCE statement with options that are not supported in Snowflake, such as MINVALUE, MAXVALUE, or CYCLE. These options are removed during conversion because Snowflake sequences only support START WITH and INCREMENT BY. The EWI message lists the specific options that were removed.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
If your application relies on
CYCLEbehavior, implement a wrapper UDF that resets the sequence value when it exceeds a threshold.If
MINVALUEorMAXVALUEbounds are critical, add application-level validation or a Snowflake task to monitor sequence values.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0089¶
SET statement is not supported in Snowflake.
Gravidade¶
Low
Descrição¶
This issue is generated when SnowConvert AI encounters a SET statement that changes a session option not supported in Snowflake and whose non-default value cannot be replicated. For example, SET CONCAT_NULL_YIELDS_NULL OFF changes SQL Server’s NULL concatenation behavior, but Snowflake always treats NULL || value as NULL (equivalent to CONCAT_NULL_YIELDS_NULL ON). Similarly, SET NUMERIC_ROUNDABORT ON raises errors on precision loss, which Snowflake does not support. The original statement is preserved with an EWI marker.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Review the downstream code that depends on this
SEToption. ForCONCAT_NULL_YIELDS_NULL OFF, replaceNULLconcatenation patterns with explicitNVL()orCOALESCE()calls to handle NULL values.For
NUMERIC_ROUNDABORT ON, add explicit rounding or precision checks in the application logic.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
Related EWIs¶
SSC-FDM-TS0037: SET statement with equivalent default behavior in Snowflake (e.g.,
SET CONCAT_NULL_YIELDS_NULL ON).
SSC-EWI-TS0090¶
Agent Job step uses an unsupported subsystem and requires manual migration.
Gravidade¶
Medium
Descrição¶
This issue is generated when SnowConvert AI encounters a SQL Server Agent Job step that uses a subsystem other than TSQL or SSIS (e.g., CmdExec, PowerShell, ANALYSISCOMMAND). These subsystems execute operating system commands or external tools that have no direct equivalent in Snowflake. The original sp_add_jobstep call is preserved with an EWI marker, and the step is not included in the generated Snowflake Task orchestration.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
For
CmdExecorPowerShellsteps, evaluate whether the logic can be rewritten as a Snowflake stored procedure, external function, or Snowflake task with a SQL body.For SSIS steps, use SnowConvert AI’s built-in ETL-to-dbt migration, which automatically generates orchestrator stored procedures.
Consider using Snowflake External Functions or Snowpark for operations that require external compute.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0091¶
Agent Job notification procedure requires manual setup of a Snowflake notification integration.
Gravidade¶
Medium
Descrição¶
This issue is generated when SnowConvert AI encounters a SQL Server Agent notification procedure such as sp_send_dbmail, sp_notify_operator, or similar email/alert procedures within an Agent Job context. These procedures rely on SQL Server’s Database Mail or Operator subsystem, which has no direct equivalent in Snowflake. A Snowflake notification integration must be manually configured to replicate this functionality.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Set up a Snowflake Notification Integration with an email provider or cloud messaging service (AWS SNS, Azure Event Grid, GCP Pub/Sub).
Use
SYSTEM$SEND_EMAIL()in Snowflake to send email notifications from stored procedures and tasks.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0092¶
Agent Job procedure references a dynamic job name that cannot be resolved statically.
Gravidade¶
Medium
Descrição¶
This issue is generated when SnowConvert AI encounters an Agent Job management procedure (sp_start_job, sp_stop_job, sp_delete_job, sp_update_job) where the @job_name parameter is a variable rather than a string literal. Because the job name cannot be resolved at conversion time, SnowConvert AI cannot determine which Snowflake Task to reference. The original statement is preserved with an EWI marker for manual resolution.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
If the job name is known at design time, replace the variable with a string literal so SnowConvert AI can resolve it to the corresponding Snowflake Task (e.g.,
EXECUTE TASK TASK_ETL_DAILY_LOAD).If the job name is truly dynamic, use
EXECUTE IMMEDIATEto build theEXECUTE TASKorALTER TASKstatement dynamically in Snowflake Scripting.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0093¶
Agent Job procedure is not supported.
Gravidade¶
Low
Descrição¶
This issue is generated when SnowConvert AI encounters a SQL Server Agent Job system procedure that does not have a supported translation to Snowflake. This includes procedures like sp_update_jobstep, sp_add_jobserver, and sp_update_job (when used without the @enabled parameter). These procedures manage Agent Job metadata that has no equivalent in Snowflake’s Task framework. The original statement is preserved with an EWI marker.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Review whether the procedure’s functionality is still needed in the Snowflake environment. Many Agent Job metadata operations (renaming steps, assigning servers) are not applicable in Snowflake’s Task model.
If the procedure modifies job scheduling or enablement, use
ALTER TASKin Snowflake instead.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0094¶
Error Message¶
WAITFOR DELAY variable may contain a time string incompatible with SYSTEM$WAIT.
Gravidade¶
Medium
Descrição¶
This EWI is generated when a WAITFOR DELAY statement uses a variable or parameter expression instead of a literal time value. The statement is transformed to CALL SYSTEM$WAIT(), which expects a numeric value representing seconds (or milliseconds). However, the variable may hold a time string in 'HH:MM:SS' format, which is incompatible with SYSTEM$WAIT.
For more information about SYSTEM$WAIT, see the Snowflake documentation.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Ensure the variable passed to
SYSTEM$WAITcontains a numeric value in seconds, not a time string in'HH:MM:SS'format.If the variable holds a time string, convert it to seconds before passing it to
SYSTEM$WAIT.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0095¶
SCOPE_IDENTITY() called without a preceding INSERT to an identity table in the same scope.
Gravidade¶
High
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
SnowConvert AI was unable to determine the target table for SCOPE_IDENTITY(). No preceding INSERT to an identity table found in the same scope.
This EWI is generated when SCOPE_IDENTITY() is called without a preceding INSERT statement to a table with an IDENTITY column in the same procedural scope. In SQL Server, SCOPE_IDENTITY() returns the last identity value inserted in the current scope, but without a detectable INSERT, SnowConvert AI cannot generate the appropriate time-travel query.
The function call is kept as-is with this EWI, requiring manual review to determine the correct implementation.
Exemplo de código¶
Input Code (SQL Server):¶
Generated Code (Snowflake):¶
Práticas recomendadas¶
Review the stored procedure logic to identify where the INSERT statement occurs
If the INSERT is in a different scope (e.g., nested block), refactor the code to make the INSERT detectable
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0096¶
SCOPE_IDENTITY() references a table that cannot be resolved in the symbol table.
Gravidade¶
High
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
SnowConvert AI was unable to resolve the target table for SCOPE_IDENTITY(). Missing table definition.
This EWI is generated when SCOPE_IDENTITY() follows an INSERT statement, but the target table cannot be resolved in the symbol table. This may occur when:
The table is defined in an external file not included in the conversion
The table name uses dynamic SQL or is otherwise unresolvable
The table definition is missing or incomplete
Without a resolvable table reference, SnowConvert AI cannot determine which identity column to query in the generated time-travel query.
Exemplo de código¶
Input Code (SQL Server):¶
Generated Code (Snowflake):¶
Práticas recomendadas¶
Ensure all table definitions are included in the conversion input
Verify that the table name in the INSERT statement matches the table definition
If the table is external, provide the schema definition or manually implement the identity retrieval logic
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0097¶
SCOPE_IDENTITY() references a table without an identifiable identity column.
Gravidade¶
High
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
SnowConvert AI was unable to identify the identity column for SCOPE_IDENTITY(). Missing column definition.
This EWI is generated when SCOPE_IDENTITY() follows an INSERT statement to a table that exists in the symbol table but does not have an IDENTITY column defined. In SQL Server, SCOPE_IDENTITY() only returns values for tables with identity columns. Without an identifiable identity column, SnowConvert AI cannot generate the appropriate MAX(identity_column) query for the time-travel transformation.
Exemplo de código¶
Input Code (SQL Server):¶
Generated Code (Snowflake):¶
Práticas recomendadas¶
Verify that the table definition includes an IDENTITY column specification
If the table should have an identity column, add the IDENTITY constraint to the CREATE TABLE statement before conversion
If the table should not use SCOPE_IDENTITY(), refactor the code to use a different method for retrieving the inserted ID
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-TS0098¶
CONVERT with a non-literal style cannot be mapped to a Snowflake format string.
Gravidade¶
Medium
Descrição¶
This EWI is generated when the third argument of CONVERT is a variable or expression instead of a literal style code. SnowConvert AI can map literal style values to Snowflake format strings for TO_DATE and TO_TIMESTAMP, but when the style is dynamic it cannot determine the correct format at conversion time. In those cases SnowConvert AI falls back to CAST.
Exemplo de código¶
Input Code (SQL Server):¶
Generated Code (Snowflake SQL):¶
Práticas recomendadas¶
Replace the dynamic style argument with a known literal format whenever possible.
If the style varies at runtime, rewrite the expression manually using the correct
TO_DATE,TO_TIMESTAMP, or conditional logic in Snowflake.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com