SnowConvert AI - Serveur SQL-Azure Synapse - ALTER¶
Référence de traduction pour toutes les instructions DDL qui sont précédées du mot-clé ALTER.
TABLE¶
Description¶
Modifie la définition d’une table en modifiant, ajoutant ou supprimant des colonnes et des contraintes. ALTER TABLE permet également de réaffecter et de reconstruire des partitions, ou de désactiver et d’activer des contraintes et des déclencheurs. (https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-transact-sql)
CHECK CONSTRAINT¶
Applies to
SQL Server
Azure Synapse Analytics
Description¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
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.
Modèles d’échantillons de sources¶
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¶
Description¶
Note
Dans le serveur SQL, la clause ADD autorise plusieurs actions par ADD, alors que Snowflake n’autorise qu’une séquence d’actions de colonne ADD. Par conséquent, SnowConvert AI divise la clause ALTER TABLE ADD en instructions ALTER TABLE individuelles.
Il existe un sous-ensemble de fonctionnalités fournies par le mot-clé ADD, permettant l’ajout de différents éléments à la table cible. Il s’agit notamment des éléments suivants :
Définition de colonne
Définition de colonne calculée
Contrainte de table
Définition d’ensemble de colonnes
TABLE CONSTRAINT¶
Applies to
SQL Server
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Spécifie les propriétés d’une contrainte PRIMARY KEY, FOREIGN KEY, UNIQUE, ou CHECK qui fait partie d’une nouvelle définition de colonne ajoutée à une table à l’aide de la commande ALTER TABLE. (https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-column-constraint-transact-sql)
La traduction des contraintes de colonne est relativement simple. Plusieurs parties de la syntaxe ne sont pas exigées ou ne sont pas prises en charge par Snowflake.
Ces parties comprennent :
CLUSTERED | NONCLUSTEREDWITH FILLFACTOR = fillfactorWITH ( index_option [, ...n ] )ON { partition_scheme_name ( partition\_column\_name ) | filegroup | "default" }NOT FOR REPLICATIONCHECK [ NOT FOR REPLICATION ]
Syntaxe dans SQL Server¶
Syntaxe dans Snowflake¶
Modèles d’échantillons de sources¶
Plusieurs instances ALTERTABLE¶
SQL Server¶
Snowflake¶
DEFAULT avec contraintes¶
SQL Server¶
Snowflake¶
Problèmes connus¶
1. DEFAULT n’est pris en charge qu’à l’intérieur de CREATE TABLE et 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
Description¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
When CHECK clause is in the ALTER statement, SnowConvert AI will comment out the entire statement, since it is not supported.
Modèles d’échantillons de sources¶
SQL Server¶
Snowflake¶
Problèmes connus¶
1. La clause ALTER TABLE CHECK n’est pas prise en charge par Snowflake.
La clause ALTER TABLE CHECK est entièrement commentée, car elle n’est pas prise en charge par Snowflake.
EWIs connexes¶
SSC-EWI-0035 : Instruction de contrôle non prise en charge.
CONNECTION¶
Applies to
SQL Server
Description¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Lorsque la clause CONNECTION se trouve dans l’instruction ALTER, SnowConvert AI commentera l’instruction entière, car elle n’est pas prise en charge.
Modèles d’échantillons de sources¶
SQL Server¶
Snowflake¶
Problèmes connus¶
1. La clause ALTER TABLE CONNECTION n’est pas prise en charge par Snowflake.
La clause ALTER TABLE CONNECTION est entièrement commentée, car elle n’est pas prise en charge par Snowflake.
EWIs connexes¶
SSC-EWI-0109 : La syntaxe Alter Table n’est pas applicable dans Snowflake.
DEFAULT¶
Applies to
SQL Server
Description¶
Lorsque la clause DEFAULT se trouve dans l’instruction ALTER, SnowConvert AI commentera l’instruction entière, car elle n’est pas prise en charge.
Le seul scénario fonctionnel se produit lorsque la définition de la table se trouve dans le même fichier ; dans ce cas, la valeur par défaut est ajoutée dans la définition de la colonne.
Modèles d’échantillons de sources¶
SQL Server¶
Snowflake¶
Problèmes connus¶
1. La clause ALTER TABLE DEFAULT n’est pas prise en charge par Snowflake.
La clause ALTER TABLE DEFAULT est entièrement commentée, car elle n’est pas prise en charge par Snowflake.
EWIs connexes¶
SSC-FDM-TS0020 : La contrainte par défaut a été commentée et peut avoir été ajoutée à une définition de table.
FOREIGN KEY¶
Applies to
SQL Server
Description¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Snowflake prend en charge la grammaire des contraintes d’intégrité référentielle et leurs propriétés afin de faciliter la migration depuis d’autres bases de données.
SQL Server¶
Snowflake¶
Modèles d’échantillons de sources¶
SQL Server¶
Snowflake¶
Note
Les contraintes ne sont pas appliquées dans Snowflake, à l’exception de NOT NULL.
Les clés primaires et étrangères ne sont utilisées qu’à des fins de documentation et non de contraintes de conception.
ON PARTITION¶
Applies to
SQL Server
Note
Instruction non pertinente.
Avertissement
Notez que cette instruction est supprimée de la migration car la syntaxe n’est pas pertinente. Cela signifie qu’elle n’est pas nécessaire dans Snowflake.
Description¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
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.
Modèles d’échantillons de sources¶
On Partition¶
Notez que dans cet exemple, ON PARTITION a été supprimé. En effet, Snowflake fournit une méthodologie de partitionnement intégrée. La syntaxe n’est donc pas pertinente.
SQL SERVER¶
Snowflake¶
PRIMARY KEY¶
Applies to
SQL Server
Description¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
La clé primaire de SQL Server comporte de nombreuses clauses qui ne sont pas applicables à Snowflake. La plupart des instructions seront donc commentées.
Syntaxe dans SQL Server¶
Syntaxe dans Snowflake¶
Modèles d’échantillons de sources¶
Avertissement
Notez que l’instruction WITH FILLFACTOR a été supprimée de la traduction car elle n’est pas pertinente dans la syntaxe Snowflake.
SQL Server¶
Snowflake¶
COLUMN DEFINITION¶
ALTER TABLE ADD column_name
Applies to
SQL Server
Azure Synapse Analytics
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Spécifie les propriétés d’une colonne qui sont ajoutées à une table à l’aide de ALTER TABLE.
L’ajout d’une définition de colonne dans Snowflake présente quelques différences par rapport à SQL Server.
Par instance, plusieurs parties de la grammaire du serveur SQL ne sont pas nécessaires ou ne sont pas du tout prises en charge par Snowflake. Il s’agit notamment des éléments suivants :
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¶
Modèles d’échantillons de sources¶
Modèle de base¶
Ce modèle illustre la suppression d’éléments de ALTER TABLE d’origine.
SQL Server¶
Snowflake¶
COLLATE¶
Le classement vous permet de spécifier des règles plus larges en matière de comparaison de chaînes.
SQL Server¶
La nomenclature des règles de classement variant de SQL Server à Snowflake, il est nécessaire de procéder à des ajustements.
Snowflake¶
MASKED WITH¶
Ce modèle montre la traduction pour la propriété MASKED WITH. CREATE OR REPLACE MASKING POLICY est inséré quelque part avant la première utilisation, puis référencé par une clause SET MASKING POLICY.
Le nom de la nouvelle MASKING POLICY sera la concaténation du nom et des arguments de la MASKED WITH FUNCTION d’origine, comme présenté ci-dessous :
SQL Server¶
Snowflake¶
DEFAULT¶
Ce modèle présente quelques-uns des scénarios de traduction de base pour la propriété DEFAULT.
SQL Server¶
Snowflake¶
ENCRYPTED WITH¶
Ce modèle illustre la traduction de la propriété ENCRYPTED WITH, qui est commentée dans le code de sortie.
SQL Server¶
Snowflake¶
NOT NULL¶
La clause SQL Server NOT NULL a le même modèle et la même fonctionnalité que la clause Snowflake NOT NULL
SQL Server¶
Snowflake¶
IDENTITY¶
Ce modèle illustre la traduction de IDENTITY. La partie NOT FOR REPLICATION est supprimée dans Snowflake.
SQL Server¶
Snowflake¶
Clauses non prises en charge¶
FILESTREAM¶
Le comportement original de FILESTREAM n’est pas réplicable dans Snowflake, et mérite un commentaire sur toute l’instruction ALTER TABLE.
SQL Server¶
Snowflake¶
SPARSE¶
Dans SQL Server, SPARSE est utilisé pour définir des colonnes optimisées pour le stockage sur NULL. Toutefois, lorsque nous utilisons Snowflake, nous ne sommes pas tenus d’utiliser cette clause.
Snowflake effectue automatiquement des optimisations sur les tables, ce qui réduit la nécessité de procéder à des optimisations manuelles par l’utilisateur.
SQL Server¶
Snowflake¶
ROWGUIDCOL¶
SQL Server¶
Snowflake¶
Problèmes connus¶
1. Les rôles et les utilisateurs doivent être préalablement définis pour les politiques de masquage
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.
Avertissement
SnowConvert AI n’effectue pas cette configuration automatiquement.
2. Les politiques de masquage nécessitent un compte Snowflake Enterprise ou supérieur.
The Snowflake documentation states that masking policies are available on Enterprise or higher rank accounts.
Note
Pour plus de détails, consultez CREATE MASKING POLICY - Documentation Snowflake.
3. DEFAULT ne prend en charge que les valeurs constantes
La propriété DEFAULT de SQL Server est partiellement prise en charge par Snowflake, tant que sa valeur associée est une constante.
4. La clause FILESTREAM n’est pas prise en charge par Snowflake.
La clause FILESTSTREAM est entièrement commentée, car elle n’est pas prise en charge par Snowflake.
5. La clause SPARSE n’est pas prise en charge par Snowflake.
La clause SPARSE est entièrement commentée, car elle n’est pas prise en charge par Snowflake. Lorsqu’elle est ajoutée à une instruction ALTER COLUMN et qu’il s’agit de la seule modification apportée à la colonne, l’instruction entière est supprimée puisqu’il n’y a plus rien à ajouter.
EWIs connexes¶
SSC-EWI-0040 : Instruction non prise en charge.
SSC-EWI-TS0061 : ALTER COLUMN non pris en charge.
SSC-EWI-TS0078 : Valeur par défaut non autorisée dans Snowflake.
SSC-FDM-TS0009 : Encrypted with n’est pas pris en charge dans Snowflake.
SSC-FDM-TS0021 : MASKING POLICY a été créé en remplacement de MASKED WITH.
SSC-FDM-TS0022 : L’utilisateur doit préalablement définir le rôle de masquage.
SSC-PRF-0002: Les colonnes insensibles à la casse peuvent diminuer les performances des requêtes.
COLUMN CONSTRAINT¶
ALTER TABLE ADD COLUMN … COLUMN CONSTRAINT
Applies to
SQL Server
Azure Synapse Analytics
Description¶
Spécifie les propriétés de PRIMARY KEY, FOREIGN KEY ou CHECK qui fait partie d’une nouvelle contrainte de colonne ajoutée à une table à l’aide de Alter Table.
SQL Server¶
Snowflake¶
Où :
CHECK¶
Applies to
SQL Server
Description¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
When CHECK clause is in the ALTER statement, SnowConvert AI will comment out the entire statement, since it is not supported.
Modèles d’échantillons de sources¶
SQL Server¶
Snowflake¶
Problèmes connus¶
1. La clause ALTER TABLE CHECK n’est pas prise en charge par Snowflake.
La clause ALTER TABLE CHECK est entièrement commentée, car elle n’est pas prise en charge par Snowflake.
EWIs connexes¶
SSC-EWI-0035 : Instruction de contrôle non prise en charge.
FOREIGN KEY¶
Applies to
SQL Server
Azure Synapse Analytics
Description¶
The syntax for the Foreign Key is fully supported by Snowflake, except for the [ NOT FOR REPLICATION ] and the WITH CHECK clauses.
SQL Server¶
Pour plus d’informations, consultez la documentation SQL Server.
Snowflake¶
Modèles d’échantillons de sources¶
Cas général¶
SQL Server¶
Snowflake¶
Cas WITHCHECK / NOCHECK¶
Notez que la logique Snowflake ne prend pas en charge la clause CHECK dans la création des clés étrangères. L’instruction WITH CHECK est marquée comme n’étant pas prise en charge. Par ailleurs, la clause WITH NO CHECK est supprimée car il s’agit du comportement par défaut dans Snowflake et l’équivalence est la même.
Veuillez consulter les exemples suivants pour mieux comprendre la traduction.
SQL Server¶
Snowflake¶
Problèmes connus¶
1. Clause NOT FOR REPLICATION.
Snowflake a une approche différente des cas de réplication. Veuillez consulter la documentation suivante.
2. Clause WITHCHECK.
Snowflake ne prend pas en charge l’instruction WITH CHECK. Pour plus d’informations, consultez la documentation suivante.
PRIMARY KEY / UNIQUE¶
Applies to
SQL Server
Azure Synapse Analytics
Description¶
Toutes les clauses optionnelles de la contrainte PRIMARY KEY / UNIQUE sont supprimées dans Snowflake.
Syntaxe dans SQL Server