SnowConvert AI - Servidor SQL - Azure Synapse - ALTER¶
Referência de tradução para todas as instruções DDL que são precedidas pela palavra-chave ALTER.
TABLE¶
Descrição¶
Modifica a definição de uma tabela alterando, adicionando ou eliminando colunas e restrições. ALTER TABLE também reatribui e reconstrói partições, ou desativa e ativa restrições e acionadores. (https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-transact-sql)
CHECK CONSTRAINT¶
Applies to
SQL Server
Azure Synapse Analytics
Descrição¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
SnowConvert AI comments out ALTER TABLE ... CHECK CONSTRAINT ... and ALTER TABLE ... NOCHECK CONSTRAINT ... statements because enabling or disabling constraints is not applicable in Snowflake.
This behavior applies to the CHECK CONSTRAINT action. It does not apply to unsupported ADD CHECK (...) constraint definitions, which continue to be flagged separately.
Amostra de padrões da origem¶
SQL Server¶
Snowflake¶
Known Limitations¶
Snowflake constraints are informational only, so SQL Server workflows that depend on enabling or disabling constraints must be redesigned manually.
This section only covers the
CHECK CONSTRAINTaction. UnsupportedCHECKconstraint definitions may still emit SSC-EWI-0035.
ADD¶
Descrição¶
Nota
No SQL Server, a cláusula ADD permite múltiplas ações por ADD, enquanto o Snowflake só permite uma sequência de ações de coluna ADD. Consequentemente, o SnowConvert AI divide a cláusula ALTER TABLE ADD em instruções individuais ALTER TABLE.
Há um subconjunto de funcionalidades fornecidas pela palavra-chave ADD, que permite a adição de diferentes elementos à tabela de destino. Isso inclui:
Definição de coluna
Definição de coluna computada
Restrição de tabela
Definição do conjunto de colunas
TABLE CONSTRAINT¶
Applies to
SQL Server
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Especifica as propriedades de uma restrição PRIMARY KEY, FOREIGN KEY, UNIQUE ou CHECK que faz parte de uma nova definição de coluna adicionada a uma tabela usando ALTER TABLE. (https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-column-constraint-transact-sql)
A conversão de restrições de coluna é relativamente simples. Há várias partes da sintaxe que não são necessárias ou não são compatíveis com o Snowflake.
Essas partes incluem:
CLUSTERED | NONCLUSTEREDWITH FILLFACTOR = fillfactorWITH ( index_option [, ...n ] )ON { partition_scheme_name ( partition\_column\_name ) | filegroup | "default" }NOT FOR REPLICATIONCHECK [ NOT FOR REPLICATION ]
Sintaxe no SQL Server¶
Sintaxe em Snowflake¶
Amostra de padrões da origem¶
Várias instâncias de ALTER TABLE¶
SQL Server¶
Snowflake¶
DEFAULT dentro de restrições¶
SQL Server¶
Snowflake¶
Problemas conhecidos¶
1. DEFAULT só é suportado em CREATE TABLE e ALTER TABLE ... ADD COLUMN
SQL Server supports defining a DEFAULT property within a constraint, while Snowflake only allows that when adding the column through CREATE TABLE or ALTER TABLE ... ADD COLUMN. DEFAULT properties within the ADD CONSTRAINT syntax are not supported and will be translated to ALTER TABLE ALTER COLUMN.
CHECK¶
Applies to
SQL Server
Descrição¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
When CHECK clause is in the ALTER statement, SnowConvert AI will comment out the entire statement, since it is not supported.
Amostra de padrões da origem¶
SQL Server¶
Snowflake¶
Problemas conhecidos¶
1. A cláusula ALTER TABLE CHECK não é compatível com o Snowflake.
Toda a cláusula ALTER TABLE CHECK é comentada, pois não é compatível com o Snowflake.
EWIs relacionados¶
SSC-EWI-0035: Instrução Check não suportada.
CONNECTION¶
Applies to
SQL Server
Descrição¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Quando a cláusula CONNECTION está na instrução ALTER, o SnowConvert AI comenta a instrução inteira, pois não é compatível.
Amostra de padrões da origem¶
SQL Server¶
Snowflake¶
Problemas conhecidos¶
1. A cláusula ALTER TABLE CONNECTION não é compatível com o Snowflake.
Toda a cláusula ALTER TABLE CONNECTION é comentada, pois não é compatível com o Snowflake.
EWIs relacionados¶
SSC-EWI-0109: A sintaxe Alter Table não é aplicável no Snowflake.
DEFAULT¶
Applies to
SQL Server
Descrição¶
Quando a cláusula DEFAULT está na instrução ALTER, o SnowConvert AI comenta a instrução inteira, pois não é compatível.
O único cenário funcional ocorre quando a definição da tabela está no mesmo arquivo; dessa forma, o padrão é adicionado na definição da coluna.
Amostra de padrões da origem¶
SQL Server¶
Snowflake¶
Problemas conhecidos¶
1. A cláusula ALTER TABLE DEFAULT não é compatível com o Snowflake.
Toda a cláusula ALTER TABLE DEFAULT é comentada, pois não é compatível com o Snowflake.
EWIs relacionados¶
SSC-FDM-TS0020: A restrição padrão foi comentada e pode ter sido adicionada a uma definição de tabela.
FOREIGN KEY¶
Applies to
SQL Server
Descrição¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
O Snowflake suporta a gramática para restrições de integridade referencial e suas propriedades para facilitar a migração de outros bancos de dados.
SQL Server¶
Snowflake¶
Amostra de padrões da origem¶
SQL Server¶
Snowflake¶
Nota
As restrições não são aplicadas no Snowflake, com exceção de NOT NULL.
As chaves primária e estrangeira são usadas apenas para fins de documentação, mais do que para restrições de design.
ON PARTITION¶
Applies to
SQL Server
Nota
Instrução não relevante.
Aviso
Observe que esta instrução é removida da migração porque é uma sintaxe não relevante. Isso significa que não é necessário no Snowflake.
Descrição¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
In Transact SQL Server, the on partition statement is used inside alter statements and is used to divide the data across the database. For more information, see the SQL Server partitioned tables and indexes documentation.
Amostra de padrões da origem¶
On Partition¶
Observe que, neste exemplo, ON PARTITION foi removido. Isso ocorre porque o Snowflake oferece uma metodologia de particionamento integrada. Portanto, a sintaxe não é relevante.
SQL SERVER¶
Snowflake¶
PRIMARY KEY¶
Applies to
SQL Server
Descrição¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
A chave primária do SQL Server tem muitas cláusulas que não são aplicáveis ao Snowflake. Portanto, a maior parte da instrução será comentada.
Sintaxe no SQL Server¶
Sintaxe no Snowflake¶
Amostra de padrões da origem¶
Aviso
Observe que a instrução WITH FILLFACTOR foi removida da conversão porque não é relevante na sintaxe do Snowflake.
SQL Server¶
Snowflake¶
COLUMN DEFINITION¶
ALTER TABLE ADD column_name
Applies to
SQL Server
Azure Synapse Analytics
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Especifica as propriedades de uma coluna que são adicionadas a uma tabela usando ALTER TABLE.
A adição de uma definição de coluna no Snowflake tem algumas diferenças em relação ao SQL Server.
Por exemplo, várias partes da gramática do SQL Server não são necessárias ou não são totalmente compatíveis com o Snowflake. Isso inclui:
Additionally, a couple other parts are partially supported, and require additional work to be implemented to properly emulate the original functionality. Specifically, we’re talking about the MASKED WITH property, which will be covered in the patterns section of this page.
SQL Server¶
Snowflake¶
Amostra de padrões da origem¶
Padrão básico¶
Esse padrão mostra a remoção de elementos de ALTER TABLE original.
SQL Server¶
Snowflake¶
COLLATE¶
O agrupamento permite que você especifique regras mais amplas ao falar sobre comparação de cadeias de caracteres.
SQL Server¶
Como a nomenclatura da regra de agrupamento varia do SQL Server para o Snowflake, é necessário fazer ajustes.
Snowflake¶
MASKED WITH¶
Este padrão mostra a tradução para a propriedade MASKED WITH. CREATE OR REPLACE MASKING POLICY é inserido em algum lugar antes do primeiro uso, e depois referenciado por uma cláusula SET MASKING POLICY.
O nome do novo MASKING POLICY será a concatenação do nome e argumentos do MASKED WITH FUNCTION original, como visto abaixo:
SQL Server¶
Snowflake¶
DEFAULT¶
Esse padrão mostra alguns dos cenários básicos de conversão para a propriedade DEFAULT.
SQL Server¶
Snowflake¶
ENCRYPTED WITH¶
Esse padrão mostra a conversão da propriedade ENCRYPTED WITH, que é comentada no código de saída.
SQL Server¶
Snowflake¶
NOT NULL¶
A cláusula SQL Server NOT NULL tem o mesmo padrão e funcionalidade que a cláusula do Snowflake NOT NULL
SQL Server¶
Snowflake¶
IDENTITY¶
Esse padrão apresenta a conversão para IDENTITY. A parte NOT FOR REPLICATION é removida no Snowflake.
SQL Server¶
Snowflake¶
Cláusulas sem suporte¶
FILESTREAM¶
O comportamento original do FILESTREAM não pode ser reproduzido no Snowflake e merece ser comentado em toda a instrução do ALTER TABLE.
SQL Server¶
Snowflake¶
SPARSE¶
No SQL Server, SPARSE é usado para definir colunas que são otimizadas para o armazenamento NULL. No entanto, quando usamos o Snowflake, não precisamos usar essa cláusula.
O Snowflake realiza otimizações em tabelas automaticamente, o que reduz a necessidade de otimizações manuais feitas pelo usuário.
SQL Server¶
Snowflake¶
ROWGUIDCOL¶
SQL Server¶
Snowflake¶
Problemas conhecidos¶
1. As funções e os usuários devem ser previamente configurados para as políticas de mascaramento
Snowflake’s Masking Policies can be applied to columns only after the policies were created. This requires the user to create the policies and assign them to roles, and these roles to users, to work properly. Masking Policies can behave differently depending on which user is querying.
Aviso
O SnowConvert AI não executa essa configuração automaticamente.
2. As políticas de mascaramento exigem uma conta Snowflake Enterprise ou superior.
The Snowflake documentation states that masking policies are available on Enterprise or higher rank accounts.
Nota
Para obter mais detalhes, acesse CREATE MASKING POLICY - Documentação do Snowflake.
3. DEFAULT suporta apenas valores constantes
A propriedade DEFAULT do SQL Server é parcialmente suportada pelo Snowflake, desde que seu valor associado seja uma constante.
4. A cláusula FILESTREAM não é compatível com o Snowflake.
Toda a cláusula FILESTSTREAM é comentada, pois não é compatível com o Snowflake.
5. A cláusula SPARSE não é compatível com o Snowflake.
Toda a cláusula SPARSE é comentada, pois não é compatível com o Snowflake. Quando ela é adicionada em uma instrução ALTER COLUMN e é a única modificação que está sendo feita na coluna, a instrução inteira é removida, pois não está mais adicionando nada.
EWIs relacionados¶
SSC-EWI-0040: Instrução não suportada.
SSC-EWI-TS0061: ALTER COLUMN não suportado.
SSC-EWI-TS0078: O valor padrão não é permitido no Snowflake.
SSC-FDM-TS0009: Encrypted with não suportado no Snowflake.
SSC-FDM-TS0021: Um MASKING POLICY foi criado como substituto do MASKED WITH.
SSC-FDM-TS0022: O usuário deve definir previamente a função de máscara.
SSC-PRF-0002: Colunas que não diferenciam maiúsculas e minúsculas podem diminuir o desempenho das consultas.
COLUMN CONSTRAINT¶
ALTER TABLE ADD COLUMN … COLUMN CONSTRAINT
Applies to
SQL Server
Azure Synapse Analytics
Descrição¶
Especifica as propriedades de um PRIMARY KEY, FOREIGN KEY ou CHECK que faz parte de uma nova restrição de coluna adicionada a uma tabela usando Alter Table.
SQL Server¶
Snowflake¶
Onde:
CHECK¶
Applies to
SQL Server
Descrição¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
When CHECK clause is in the ALTER statement, SnowConvert AI will comment out the entire statement, since it is not supported.
Amostra de padrões da origem¶
SQL Server¶
Snowflake¶
Problemas conhecidos¶
1. A cláusula ALTER TABLE CHECK não é compatível com o Snowflake.
Toda a cláusula ALTER TABLE CHECK é comentada, pois não é compatível com o Snowflake.
EWIs relacionados¶
SSC-EWI-0035: Instrução Check não suportada.
FOREIGN KEY¶
Applies to
SQL Server
Azure Synapse Analytics
Descrição¶
The syntax for the Foreign Key is fully supported by Snowflake, except for the [ NOT FOR REPLICATION ] and the WITH CHECK clauses.
SQL Server¶
Consulte a seguinte documentação do SQL Server para obter mais informações.
Snowflake¶
Amostra de padrões da origem¶
Caso geral¶
SQL Server¶
Snowflake¶
Caso WITH CHECK / NO CHECK¶
Observe que a lógica do Snowflake não suporta a cláusula CHECK na criação de chaves estrangeiras. A instrução WITH CHECK está marcada como não suportada. Além disso, a cláusula WITH NO CHECK foi removida porque é o comportamento padrão no Snowflake e a equivalência é a mesma.
Analise os exemplos a seguir para entender melhor a conversão.
SQL Server¶
Snowflake¶
Problemas conhecidos¶
1. Cláusula NOT FOR REPLICATION.
O Snowflake tem uma abordagem diferente para os casos de replicação. Veja a documentação a seguir.
2. Cláusula WITHCHECK.
O Snowflake não suporta a instrução WITH CHECK. Consulte a documentação a seguir para obter mais informações.
PRIMARY KEY / UNIQUE¶
Applies to
SQL Server
Azure Synapse Analytics
Descrição¶
Todas as cláusulas opcionais da restrição PRIMARY KEY / UNIQUE foram removidas no Snowflake.
Sintaxe no SQL Server