SnowConvert AI - Serveur SQL-Azure Synapse - Tables système¶
Spécification de traduction pour les tables systèmes Transact-SQL
Tables du système¶
Transact-SQL |
Snowflake SQL |
Remarques |
|
|---|---|---|---|
SYS.ALL_VIEWS |
INFORMATION_SCHEMA.VIEWS |
||
SYS.ALL_COLUMNS |
INFORMATION_SCHEMA.COLUMNS |
||
SYS.COLUMNS |
INFORMATION_SCHEMA.COLUMNS |
||
SYS.OBJECTS |
INFORMATION_SCHEMA.OBJECT_PRIVILEGES |
||
SYS.PROCEDURES |
INFORMATION_SCHEMA.PROCEDURES |
||
SYS.SEQUENCES |
INFORMATION_SCHEMA.SEQUENCES |
||
SYS.ALL_OBJECTS |
INFORMATION_SCHEMA.OBJECT_PRIVILEGES |
||
ALL_PARAMETERS |
Non pris en charge |
||
SYS.ALL_SQL_MODULES |
Non pris en charge |
||
SYS.ALLOCATION_UNITS |
Non pris en charge |
||
SYS.ASSEMBLY_MODULES |
Non pris en charge |
||
SYS.CHECK_CONSTRAINTS |
Non pris en charge |
||
SYS.COLUMN_STORE_DICTIONARIES |
Non pris en charge |
||
SYS.COLUMN_STORE_ROW_GROUPS |
Non pris en charge |
||
SYS.COLUMN_STORE_SEGMENTS |
Non pris en charge |
||
SYS.COMPUTED_COLUMNS |
Non pris en charge |
||
SYS.DEFAULT_CONSTRAINTS |
Non pris en charge |
||
SYS.EVENTS |
Non pris en charge |
||
SYS.EVENT_NOTIFICATIONS |
Non pris en charge |
||
SYS.EVENT_NOTIFICATION_EVENT_TYPES |
Non pris en charge |
||
SYS.EXTENDED_PROCEDURES |
Non pris en charge |
||
SYS.EXTERNAL_LANGUAGE_FILES |
Non pris en charge |
||
SYS.EXTERNAL_LANGUAGES |
Non pris en charge |
||
SYS.EXTERNAL_LIBRARIES |
Non pris en charge |
||
SYS.EXTERNAL_LIBRARY_FILES |
Non pris en charge |
||
SYS.FOREIGN_KEYS |
INFORMATION_SCHEMA.TABLE_CONSTRAINTS |
||
SYS.FOREIGN_KEY_COLUMNS |
Non pris en charge |
||
SYS.FUNCTION_ORDER_COLUMNS |
Non pris en charge |
||
SYS.HASH_INDEXES |
Non pris en charge |
||
SYS.INDEXES |
Non pris en charge |
||
SYS.INDEX_COLUMNS |
Non pris en charge |
||
SYS.INDEX_RESUMABLE_OPERATIONS |
Non pris en charge |
||
SYS.INTERNAL_PARTITIONS |
Non pris en charge |
||
SYS.INTERNAL_TABLES |
Non pris en charge |
||
SYS.KEY_CONSTRAINTS |
Non pris en charge |
||
SYS.MASKED_COLUMNS |
Non pris en charge |
||
SYS.MEMORY_OPTIMIZED_TABLES_INTERNAL_ATTRIBUTES |
Non pris en charge |
||
SYS.MODULE_ASSEMBLY_USAGES |
Non pris en charge |
||
SYS.NUMBERED_PROCEDURES |
Non pris en charge |
||
SYS.NUMBERED_PROCEDURE_PARAMETERS |
Non pris en charge |
||
SYS.PARAMETERS |
Non pris en charge |
||
SYS.PARTITIONS |
Non pris en charge |
||
SYS.PERIODS |
Non pris en charge |
||
SYS.SERVER_ASSEMBLY_MODULES |
Non pris en charge |
||
SYS.SERVER_EVENTS |
Non pris en charge |
||
SYS.SERVER_EVENT_NOTIFICATIONS |
Non pris en charge |
||
SYS.SERVER_SQL_MODULE |
Non pris en charge |
||
SYS.SERVER_TRIGGERS |
Non pris en charge |
||
SYS._SERVER_TRIGGER_EVENTS |
Non pris en charge |
||
SYS.SQL_DEPENDENCIES |
Non pris en charge |
||
SYS.SQL_EXPRESSION_DEPENDENCIES |
Non pris en charge |
||
SYS.SQL_MODULES |
Non pris en charge |
||
SYS.STATS |
Non pris en charge |
||
SYS.STATS_COLUMNS |
Non pris en charge |
||
SYS.SYNONYMS |
Non pris en charge |
||
SYS.SYSTEM_COLUMNS |
Non pris en charge |
||
SYS.SYSTEM_OBJECTS |
Non pris en charge |
||
SYS.SYSTEM_PARAMETERS |
Non pris en charge |
||
SYS.SYSCONSTRAINTS |
INFORMATION_SCHEMA.TABLE_CONSTRAINTS |
||
SYS.SYSTEM_SQL_MODULES » |
Non pris en charge |
SYSCONSTRAINTS¶
Applies to
SQL Server
Azure Synapse Analytics
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
The sysconstraints compatibility view maps constraint IDs to the objects and tables they belong to. It is a legacy system table from earlier SQL Server versions (SQL Server documentation).
SnowConvert AI transforms queries against sysconstraints (or sys.sysconstraints) into queries against Snowflake’s INFORMATION_SCHEMA.TABLE_CONSTRAINTS. The transformation also rewrites common OBJECT_NAME() patterns:
sysconstraints pattern |
Snowflake equivalent |
|---|---|
|
|
|
|
When OBJECT_NAME() is called with an unrecognized argument or compared against a non-literal value, the expression is preserved and SSC-EWI-TS0104 is emitted.
Modèles d’échantillons de sources¶
1. Basic sysconstraints query¶
SQL Server¶
Snowflake¶
2. Qualified sys.sysconstraints¶
SQL Server¶
Snowflake¶
3. sysconstraints inside IF EXISTS with DROP CONSTRAINT¶
SQL Server¶
Snowflake¶
Note
The WITH ( ONLINE = OFF ) clause is removed because Snowflake does not support index options on DROP CONSTRAINT. The IF EXISTS at the constraint level is also stripped because Snowflake does not support it in that position.
4. Unmapped argument emits EWI¶
SQL Server¶
Snowflake¶
Problèmes connus¶
1. Only OBJECT_NAME(constid) and OBJECT_NAME(id) are automatically mapped¶
Other arguments to OBJECT_NAME() inside sysconstraints queries cannot be automatically resolved and will emit SSC-EWI-TS0104.
2. Non-literal comparisons are not converted¶
If OBJECT_NAME() is compared to a column reference, variable, or expression (instead of a string literal), the expression is preserved with an EWI annotation.
3. JOIN statements with sysconstraints are not supported¶
Queries that join sysconstraints with other tables are not automatically translated.
SYS.FOREIGN_KEYS¶
Applies to
SQL Server
Azure Synapse Analytics
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Contient une ligne par objet qui est une contrainte FOREIGN KEY (documentation SQLServer).
Les colonnes de FOREIGN KEY (sys.foreign_keys) sont les suivantes :
Nom de la colonne |
Type de données |
Description |
A une colonne équivalente dans Snowflake |
|---|---|---|---|
- |
Pour une liste des colonnes dont cette vue hérite, voir [sys.objects (Transact-SQL).] (https://learn.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-objects-transact-sql?view=sql-server-ver16) |
Partiel |
|
referenced_object_id |
int |
ID de l’objet référencé. |
Non |
key_index_id |
int |
ID de l’index de clés dans l’objet référencé. |
Non |
is_disabled |
bit |
La contrainte FOREIGN KEY est désactivée. |
Non |
is_not_for_replication |
bit |
La contrainte FOREIGN KEY a été créée en utilisant l’option NOT FOR REPLICATION. |
Non |
is_not_trusted |
bit |
La contrainte FOREIGN KEY n’a pas été vérifiée par le système. |
Non |
delete_referential_action |
tinyint |
L’action de référence qui a été déclarée pour cette FOREIGN KEY lorsqu’une suppression se produit. Voir la documentation SQLServer. |
Non |
delete_referential_action_desc |
nvarchar(60) |
Description de l’action de référence qui a été déclarée pour cette FOREIGN KEY lorsqu’une suppression se produit. Voir la documentation SQLServer. |
Non |
update_referential_action |
tinyint |
L’action de référence qui a été déclarée pour cette FOREIGN KEY lorsqu’une mise à jour se produit. Voir la documentation SQLServer. |
Non |
update_referential_action_desc |
nvarchar(60) |
Description de l’action de référence qui a été déclarée pour cette FOREIGN KEY lorsqu’une mise à jour se produit. Voir la documentation SQLServer. |
Non |
is_system_named |
bit |
1 = Le nom a été généré par le système. |
Non |
Les colonnes héritées de sys.objects sont les suivantes :
Pour plus d’informations, consultez la documentation sys.objects.
Nom de la colonne |
Type de données |
Description |
A une colonne équivalente dans Snowflake |
|---|---|---|---|
name |
sysname |
Nom d’objet. |
Oui |
object_id |
int |
Numéro d’identification d’objet. Est unique dans une base de données. |
Non |
principal_id |
int |
ID du propriétaire individuel, s’il est différent du propriétaire du schéma. |
Non |
schema_id |
int |
ID du schéma dans lequel l’objet est contenu. |
Non |
parent_object_id |
int |
ID de l’objet auquel appartient cet objet. |
Non |
type |
char(2) |
Type d’objet |
Oui |
type_desc |
nvarchar(60) |
Description du type d’objet |
Oui |
create_date |
datetime |
Date de création de l’objet. |
Oui |
modify_date |
datetime |
Date de la dernière modification de l’objet en utilisant une instruction ALTER. |
Oui |
is_ms_shipped |
bit |
L’objet est créé par un composant Serveur SQL. |
Non |
is_published |
bit |
L’objet est créé par un composant Serveur SQL. |
Non |
is_schema_published |
bit |
Seul le schéma de l’objet est publié. |
Non |
Avertissement
Remarquez que, dans ce casse, pour les sys.foreign_keys, il n’y a pas d’équivalence dans Snowflake. Mais, l’équivalence se fait sous les colonnes héritées de sys.objects.
Équivalence des colonnes applicables¶
SQLServer |
Snowflake |
Limitations |
Applicable |
|---|---|---|---|
name |
CONSTRAINT_NAME |
Les noms générés automatiquement par la base de données peuvent être remplacés par le nom généré automatiquement par Snowflake cible, |
Oui |
type |
CONSTRAINT_TYPE |
La colonne de type propose de nombreuses options. Mais, dans ce cas, la prise en charge ne concerne que la lettre « F » qui représente les clés étrangères. |
Non. En raison de la validation supplémentaire pour déterminer les clés étrangères à partir de toutes les contraintes de table, cette fonction n’est pas applicable. |
type_desc |
CONSTRAINT_TYPE |
No limitations found. |
Non. En raison de la validation supplémentaire pour déterminer les clés étrangères à partir de toutes les contraintes de table, cette fonction n’est pas applicable. |
create_date |
CREATED |
Différences de types de données. |
Oui |
modify_date |
LAST_ALTERED |
Différences de types de données. |
Oui |
parent_object_id |
CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME |
Les colonnes ne sont générées que pour les cas qui utilisent la fonction OBJECT_ID() et, le nom a un modèle valide. |
Oui |
Syntaxe dans SQL Server¶
Syntaxe dans Snowflake¶
Note
Comme l’équivalence pour les clés étrangères du système est la vue du catalogue dans Snowflake pour les contraintes d’information _schema.table_, il est nécessaire de définir le type de la contrainte dans une clause supplémentaire “WHERE” pour identifier les contraintes de clé étrangère par rapport aux autres contraintes.
Modèles d’échantillons de sources¶
Pour accomplir correctement les exemples suivants, il est nécessaire d’exécuter les instructions suivantes :
SQL Server¶
Snowflake¶
1. Simple Select Case¶
SQL Server¶
Résultat¶
name |
object_id |
principal_id |
schema_id |
type |
type_desc |
create_date |
modify_date |
parent_object_id |
is_ms_shipped |
is_published |
is_schema_published |
referenced_object_id |
key_index_id |
is_disabled |
is_not_for_replication |
is_not_trusted |
delete_referential_action |
delete_referential_action_desc |
update_referential_action |
update_referential_action_desc |
is_system_named |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
FK_Name_Test |
1719677174 |
NULL |
1 |
F |
FOREIGN_KEY_CONSTRAINT |
2023-09-11 22:20:04.160 |
2023-09-11 22:20:04.160 |
1687677060 |
false |
true |
false |
1655676946 |
1 |
false |
false |
0 |
NO_ACTION |
0 |
NO_ACTION |
true |
Snowflake¶
Résultat¶
CONSTRAINT_CATALOG |
CONSTRAINT_SCHEMA |
CONSTRAINT_NAME |
TABLE_CATALOG |
TABLE_SCHEMA |
TABLE_NAME |
CONSTRAINT_TYPE |
IS_DEFERRABLE |
INITIALLY_DEFERRED |
ENFORCED |
COMMENT |
CREATED |
LAST_ALTERED |
RELY |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DBTEST |
PUBLIC |
FK_Name_Test |
DATETEST |
PUBLIC |
ORDERS |
FOREIGN KEY |
NO |
YES |
NO |
null |
2023-09-11 15:23:51.969 -0700 |
2023-09-11 15:23:52.097 -0700 |
NO |
Avertissement
Les résultats diffèrent en raison des différences dans les objets des colonnes et de l’équivalence manquante. Le résultat peut être vérifié.
2. Name Column Case¶
SQL Server¶
Résultat¶
name |
object_id |
principal_id |
schema_id |
type |
type_desc |
create_date |
modify_date |
parent_object_id |
is_ms_shipped |
is_published |
is_schema_published |
referenced_object_id |
key_index_id |
is_disabled |
is_not_for_replication |
is_not_trusted |
delete_referential_action |
delete_referential_action_desc |
update_referential_action |
update_referential_action_desc |
is_system_named |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
FK_Name_Test |
1719677174 |
NULL |
1 |
F |
FOREIGN_KEY_CONSTRAINT |
2023-09-11 22:20:04.160 |
2023-09-11 22:20:04.160 |
1687677060 |
false |
true |
false |
1655676946 |
1 |
false |
false |
0 |
NO_ACTION |
0 |
NO_ACTION |
true |
Snowflake¶
Résultat¶
CONSTRAINT_CATALOG |
CONSTRAINT_SCHEMA |
CONSTRAINT_NAME |
TABLE_CATALOG |
TABLE_SCHEMA |
TABLE_NAME |
CONSTRAINT_TYPE |
IS_DEFERRABLE |
INITIALLY_DEFERRED |
ENFORCED |
COMMENT |
CREATED |
LAST_ALTERED |
RELY |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DBTEST |
PUBLIC |
FK_Name_Test |
DATETEST |
PUBLIC |
ORDERS |
FOREIGN KEY |
NO |
YES |
NO |
null |
2023-09-11 15:23:51.969 -0700 |
2023-09-11 15:23:52.097 -0700 |
NO |
Avertissement
This translation may require verification if the constraint name is auto-generated by the database and used in the query. For more information review the Known Issues section.
3. Parent Object ID Case¶
Dans cet exemple, une base de données et un schéma ont été créés pour illustrer le traitement des noms afin de créer des colonnes différentes et équivalentes.
SQL Server¶
Résultat¶
name |
object_id |
principal_id |
schema_id |
type |
type_desc |
create_date |
modify_date |
parent_object_id |
is_ms_shipped |
is_published |
is_schema_published |
referenced_object_id |
key_index_id |
is_disabled |
is_not_for_replication |
is_not_trusted |
delete_referential_action |
delete_referential_action_desc |
update_referential_action |
update_referential_action_desc |
is_system_named |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
FK_Name_Test |
1719677174 |
NULL |
1 |
F |
FOREIGN_KEY_CONSTRAINT |
2023-09-11 22:20:04.160 |
2023-09-11 22:20:04.160 |
1687677060 |
false |
true |
false |
1655676946 |
1 |
false |
false |
0 |
NO_ACTION |
0 |
NO_ACTION |
true |
Snowflake¶
Résultat¶
CONSTRAINT_CATALOG |
CONSTRAINT_SCHEMA |
CONSTRAINT_NAME |
TABLE_CATALOG |
TABLE_SCHEMA |
TABLE_NAME |
CONSTRAINT_TYPE |
IS_DEFERRABLE |
INITIALLY_DEFERRED |
ENFORCED |
COMMENT |
CREATED |
LAST_ALTERED |
RELY |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DATABASE_NAME_TEST |
SCHEMA_NAME_TEST |
FK_Name_Test |
DATABASE_NAME_TEST |
SCHEMA_NAME_TEST |
ORDERS |
FOREIGN KEY |
NO |
YES |
NO |
null |
2023-09-11 15:23:51.969 -0700 |
2023-09-11 15:23:52.097 -0700 |
NO |
Avertissement
Si le nom entrant dans la fonction OBJECT_ID() n’a pas de modèle valide, il ne sera pas converti en raison des limites de traitement des noms sur les caractères spéciaux.
Avertissement
Passez en revue la base de données utilisée dans Snowflake.
4. Type Column Case¶
Le « F » dans SQL Server signifie « Foreign Key » (clé étrangère) et il est supprimé en raison de la validation à la fin pour spécifier la clé étrangère à partir de toutes les contraintes de la table.
SQL Server¶
Résultat¶
name |
object_id |
principal_id |
schema_id |
type |
type_desc |
create_date |
modify_date |
parent_object_id |
is_ms_shipped |
is_published |
is_schema_published |
referenced_object_id |
key_index_id |
is_disabled |
is_not_for_replication |
is_not_trusted |
delete_referential_action |
delete_referential_action_desc |
update_referential_action |
update_referential_action_desc |
is_system_named |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
FK_Name_Test |
1719677174 |
NULL |
3 |
F |
FOREIGN_KEY_CONSTRAINT |
2023-09-11 22:20:04.160 |
2023-09-11 22:20:04.160 |
1687677060 |
false |
true |
false |
1655676946 |
1 |
false |
false |
0 |
NO_ACTION |
0 |
NO_ACTION |
true |
Snowflake¶
Résultat¶
CONSTRAINT_CATALOG |
CONSTRAINT_SCHEMA |
CONSTRAINT_NAME |
TABLE_CATALOG |
TABLE_SCHEMA |
TABLE_NAME |
CONSTRAINT_TYPE |
IS_DEFERRABLE |
INITIALLY_DEFERRED |
ENFORCED |
COMMENT |
CREATED |
LAST_ALTERED |
RELY |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DBTEST |
PUBLIC |
FK_Name_Test |
DATETEST |
PUBLIC |
ORDERS |
FOREIGN KEY |
NO |
YES |
NO |
null |
2023-09-11 15:23:51.969 -0700 |
2023-09-11 15:23:52.097 -0700 |
NO |
5. Type Desc Column Case¶
La colonne « type_desc » est supprimée en raison de la validation à la fin pour spécifier la clé étrangère à partir de toutes les contraintes de la table.
SQL Server¶
Résultat¶
name |
object_id |
principal_id |
schema_id |
type |
type_desc |
create_date |
modify_date |
parent_object_id |
is_ms_shipped |
is_published |
is_schema_published |
referenced_object_id |
key_index_id |
is_disabled |
is_not_for_replication |
is_not_trusted |
delete_referential_action |
delete_referential_action_desc |
update_referential_action |
update_referential_action_desc |
is_system_named |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
FK_Name_Test |
1719677174 |
NULL |
3 |
F |
FOREIGN_KEY_CONSTRAINT |
2023-09-11 22:20:04.160 |
2023-09-11 22:20:04.160 |
1687677060 |
false |
true |
false |
1655676946 |
1 |
false |
false |
0 |
NO_ACTION |
0 |
NO_ACTION |
true |
Snowflake¶
Résultat¶
CONSTRAINT_CATALOG |
CONSTRAINT_SCHEMA |
CONSTRAINT_NAME |
TABLE_CATALOG |
TABLE_SCHEMA |
TABLE_NAME |
CONSTRAINT_TYPE |
IS_DEFERRABLE |
INITIALLY_DEFERRED |
ENFORCED |
COMMENT |
CREATED |
LAST_ALTERED |
RELY |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DBTEST |
PUBLIC |
FK_Name_Test |
DATETEST |
PUBLIC |
ORDERS |
FOREIGN KEY |
NO |
YES |
NO |
null |
2023-09-11 15:23:51.969 -0700 |
2023-09-11 15:23:52.097 -0700 |
NO |
6. Modify Date Column Simple Case¶
SQL Server¶
Résultat¶
Snowflake¶
Résultat¶
7. Modify Date Column with DATEDIFF() Case¶
L’exemple suivant montre un scénario plus complexe dans lequel les colonnes de sys.foreign_keys (héritées de sys.objects) se trouvent à l’intérieur d’une fonction DATEDIFF. Dans ce cas, l’argument correspondant à l’équivalence applicable est remplacé par la colonne correspondante du schéma information.schema dans Snowflake.
SQL Server¶
Résultat¶
Snowflake¶
Résultat¶
8. Create Date Column Case¶
SQL Server¶
Résultat¶
Snowflake¶
Résultat¶
Avertissement
Le résultat peut changer si la date de création est spécifique en raison de l’heure à laquelle les requêtes ont été exécutées. Il est possible d’exécuter une requête spécifique à un moment donné sur la base de données d’origine, puis d’exécuter les objets à un autre moment dans les nouvelles requêtes Snowflake.
9. Selected Columns Single Name Case¶
SQL Server¶
Résultat¶
name |
|---|
FK_Name_Test |
Snowflake¶
Résultat¶
CONSTRAINT_NAME |
|---|
FK_Name_Test |
10. Selected Columns Qualified Name Case¶
SQL Server¶
Résultat¶
name |
|---|
FK_Name_Test |
Snowflake¶
Résultat¶
CONSTRAINT_NAME |
|---|
FK_Name_Test |
Problèmes connus¶
1. The “name” column may not show a correct output if the constraint does not have a user-created name¶
Si la référence est un nom généré automatiquement à partir de la base de données, il est probable qu’elle soit révisée et que la valeur souhaitée soit utilisée.
2. When selecting columns, there is a limitation that depends on the applicable columns that are equivalent in Snowflake¶
Les colonnes de sys.foreign_keys n’étant pas complètement équivalentes dans Snowflake, certains résultats peuvent changer en raison des limites d’équivalence.
3. The OBJECT_ID() function may have a valid pattern to be processed or the database, schema or table could not be extracted¶
En fonction du nom qui reçoit la fonction OBJECT_ID(), le traitement de ce nom sera limité et dépendra du formatage.
4. Name Column With OBJECT_NAME() Function Case¶
La fonction OBJECT_NAME() n’étant pas encore prise en charge, les transformations liées à cette fonction ne sont pas prises en charge.
SQL Server¶
Snowflake¶
5. SCHEMA_NAME() and TYPE_NAME() functions are also not supported yet.¶
6. Different Join statement types may be not supported if the system table is not supported. Review the supported system tables.¶
7. Cases with JOIN statements are not supported.¶
8. Names with alias AS are not supported.¶
EWIs connexes¶
SSC-EWI-0073 : En attente de l’examen de l’équivalence fonctionnelle.