SnowConvert: Transact Systemtabellen

Systemtabellen

Transact-SQLSnowflake SQLNotes
SYS.ALL_VIEWSINFORMATION_SCHEMA.VIEWS
SYS.ALL_COLUMNSINFORMATION_SCHEMA.COLUMNS
SYS.COLUMNSINFORMATION_SCHEMA.COLUMNS
SYS.OBJECTSINFORMATION_SCHEMA.OBJECT_PRIVILEGES
SYS.PROCEDURESINFORMATION_SCHEMA.PROCEDURES
SYS.SEQUENCESINFORMATION_SCHEMA.SEQUENCES
SYS.ALL_OBJECTSINFORMATION_SCHEMA.OBJECT_PRIVILEGES
ALL_PARAMETERSNot supported
SYS.ALL_SQL_MODULESNot supported
SYS.ALLOCATION_UNITSNot supported
SYS.ASSEMBLY_MODULESNot supported
SYS.CHECK_CONSTRAINTSNot supported
SYS.COLUMN_STORE_DICTIONARIESNot supported
SYS.COLUMN_STORE_ROW_GROUPSNot supported
SYS.COLUMN_STORE_SEGMENTSNot supported
SYS.COMPUTED_COLUMNSNot supported
SYS.DEFAULT_CONSTRAINTSNot supported
SYS.EVENTSNot supported
SYS.EVENT_NOTIFICATIONSNot supported
SYS.EVENT_NOTIFICATION_EVENT_TYPESNot supported
SYS.EXTENDED_PROCEDURESNot supported
SYS.EXTERNAL_LANGUAGE_FILESNot supported
SYS.EXTERNAL_LANGUAGESNot supported
SYS.EXTERNAL_LIBRARIESNot supported
SYS.EXTERNAL_LIBRARY_FILESNot supported
SYS.FOREIGN_KEYSINFORMATION_SCHEMA.TABLE_CONSTRAINTS
SYS.FOREIGN_KEY_COLUMNSNot supported
SYS.FUNCTION_ORDER_COLUMNSNot supported
SYS.HASH_INDEXESNot supported
SYS.INDEXESNot supported
SYS.INDEX_COLUMNSNot supported
SYS.INDEX_RESUMABLE_OPERATIONSNot supported
SYS.INTERNAL_PARTITIONSNot supported
SYS.INTERNAL_TABLESNot supported
SYS.KEY_CONSTRAINTSNot supported
SYS.MASKED_COLUMNSNot supported
SYS.MEMORY_OPTIMIZED_TABLES_INTERNAL_ATTRIBUTESNot supported
SYS.MODULE_ASSEMBLY_USAGESNot supported
SYS.NUMBERED_PROCEDURESNot supported
SYS.NUMBERED_PROCEDURE_PARAMETERSNot supported
SYS.PARAMETERSNot supported
SYS.PARTITIONSNot supported
SYS.PERIODSNot supported
SYS.SERVER_ASSEMBLY_MODULESNot supported
SYS.SERVER_EVENTSNot supported
SYS.SERVER_EVENTT_NOTIFICATIONSNot supported
SYS.SERVER_SQL_MODULENot supported
SYS.SERVER_TRIGGERSNot supported
SYS._SERVER_TRIGGER_EVENTSNot supported
SYS.SQL_DEPENDENCIESNot supported
SYS.SQL_EXPRESSION_DEPENDENCIESNot supported
SYS.SQL_MODULESNot supported
SYS.STATSNot supported
SYS.STATS_COLUMNSNot supported
SYS.SYNONYMSNot supported
SYS.SYSTEM_COLUMNSNot supported
SYS.SYSTEM_OBJECTSNot supported
SYS.SYSTEM_PARAMETERSNot supported
SYS.SYSTEM_SQL_MODULES"Not supported

Bekannte Probleme

Es wurden keine Probleme gefunden.

SYS.FOREIGN_KEYS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Bemerkung

Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.

Beschreibung

Enthält eine Zeile pro Objekt, die eine FOREIGN KEY-Einschränkung ist (SQLServer Dokumentation).

Die Spalten für FOREIGN KEY (sys.foreign_keys) sind die folgenden:

Column nameData typeDescriptionHas equivalent column in Snowflake
<Columns inherited from sys.objects>-For a list of columns that this view inherits, see sys.objects (Transact-SQL).Partial
referenced_object_idintID of the referenced object.No
key_index_idintID of the key index within the referenced object.No
is_disabledbitFOREIGN KEY constraint is disabled.No
is_not_for_replicationbitFOREIGN KEY constraint was created by using the NOT FOR REPLICATION option.No
is_not_trustedbitFOREIGN KEY constraint has not been verified by the system.No
delete_referential_actiontinyintThe referential action that was declared for this FOREIGN KEY when a delete happens. See SQLServer Documentation.No
delete_referential_action_descnvarchar(60)Description of the referential action that was declared for this FOREIGN KEY when a delete occurs. See SQLServer Documentation.No
update_referential_actiontinyintThe referential action that was declared for this FOREIGN KEY when an update happens. See SQLServer Documentation.No
update_referential_action_descnvarchar(60)Description of the referential action that was declared for this FOREIGN KEY when an update happens. See SQLServer Documentation.No
is_system_namedbit

1 = Name was generated by the system.

0 = Name was supplied by the user.

No

Die geerbten Spalten von sys.objects sind die folgenden:

Weitere Informationen finden Sie in der Dokumentation zu sys.objects.

Column nameData typeDescriptionHas equivalent column in Snowflake
namesysnameObject name.Yes
object_idintObject identification number. Is unique within a database.No
principal_idintID of the individual owner, if different from the schema owner.No
schema_idintID of the schema that the object is contained in.No
parent_object_idintID of the object to which this object belongs.No
typechar(2)Object typeYes
type_descnvarchar(60)Description of the object typeYes
create_datedatetimeDate the object was created.Yes
modify_datedatetimeDate the object was last modified by using an ALTER statement.Yes
is_ms_shippedbitObject is created by an internal SQL Server component.No
is_publishedbitObject is created by an internal SQL Server component.No
is_schema_publishedbitOnly the schema of the object is published.No

Beachten Sie, dass es in diesem Fall für sys.foreign_keys keine Äquivalenz in Snowflake gibt. Aber die Gleichwertigkeit wird unter von sys.objects geerbten Spalten hergestellt.

Anwendbare Spaltenäquivalenz

SQLServerSnowflakeLimitationsApplicable
nameCONSTRAINT_NAMENames auto-generated by the database may be reviewed to the target Snowflake auto-generated name,Yes
typeCONSTRAINT_TYPEThe type column has a variety of options. But, in this case, the support is only for the letter 'F' which represents the foreign keys.No. Because of the extra validation to determine the foreign keys from all table constraints, it is not applicable.
type_descCONSTRAINT_TYPENo limitions found.No. Because of the extra validation to determine the foreign keys from all table constraints, it is not applicable.
create_dateCREATEDData type differences.Yes
modify_dateLAST_ALTEREDData type differences.Yes
parent_object_idCONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAMEColumns are generated only for the cases that use the OBJECT_ID() function and, the name has a valid pattern.Yes
Syntax in SQL Server
 SELECT ('column_name' | * )
FROM sys.foreign_keys;
Copy
Syntax in Snowflake
 SELECT ('column_name' | * )
FROM information_schema.table_constraints 
WHERE CONSTRAINT_TYPE = 'FOREIGN KEY';
Copy

Bemerkung

Da die Äquivalenz für die Systemfremdschlüssel die Katalogansicht in Snowflake für information_schema.table_constraints ist, ist es notwendig, den Typ der Einschränkung in einer zusätzlichen WHERE-Klausel zu definieren, um Fremdschlüsseleinschränkungen von anderen Einschränkungen zu unterscheiden.

Beispielhafte Quellcode-Muster

Um die folgenden Beispiele korrekt auszuführen (außer Mutser Nummer 3), müssen Sie die folgenden Anweisungen ausführen:

 CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    Email VARCHAR(100)
);

CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    CustomerID INT,
    OrderDate DATE,
    TotalAmount DECIMAL(10, 2),
    CONSTRAINT FK_Name_Test FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);


INSERT INTO Customers (CustomerID, FirstName, LastName, Email)
VALUES
    (1, 'John', 'Doe', 'john.doe@example.com'),
    (2, 'Jane', 'Smith', 'jane.smith@example.com');

INSERT INTO Orders (OrderID, CustomerID, OrderDate, TotalAmount)
VALUES
    (101, 1, '2023-09-01', 100.50),
    (102, 1, '2023-09-02', 75.25),
    (103, 2, '2023-09-03', 50.00);
Copy
 CREATE OR REPLACE TABLE Customers (
    CustomerID INT PRIMARY KEY,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    Email VARCHAR(100)
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'
;

CREATE OR REPLACE TABLE Orders (
    OrderID INT PRIMARY KEY,
    CustomerID INT,
    OrderDate DATE,
    TotalAmount DECIMAL(10, 2),
       CONSTRAINT FK_Name_Test FOREIGN KEY (CustomerID) REFERENCES Customers (CustomerID)
   )
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'
;

INSERT INTO Customers (CustomerID, FirstName, LastName, Email)
VALUES
    (1, 'John', 'Doe', 'john.doe@example.com'),
    (2, 'Jane', 'Smith', 'jane.smith@example.com');

INSERT INTO Orders (OrderID, CustomerID, OrderDate, TotalAmount)
VALUES
    (101, 1, '2023-09-01', 100.50),
    (102, 1, '2023-09-02', 75.25),
    (103, 2, '2023-09-03', 50.00);
Copy

1. Simple Select Case

SQL Server
 SELECT *
FROM sys.foreign_keys;
Copy
nameobject_idprincipal_idschema_idtypetype_desccreate_datemodify_dateparent_object_idis_ms_shippedis_publishedis_schema_publishedreferenced_object_idkey_index_idis_disabledis_not_for_replicationis_not_trusteddelete_referential_actiondelete_referential_action_descupdate_referential_actionupdate_referential_action_descis_system_named
FK_Name_Test1719677174NULL1FFOREIGN_KEY_CONSTRAINT2023-09-11 22:20:04.1602023-09-11 22:20:04.1601687677060falsetruefalse16556769461falsefalse0NO_ACTION0NO_ACTIONtrue
Snowflake
 SELECT *
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE
CONSTRAINT_TYPE = 'FOREIGN KEY';
Copy
CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMETABLE_CATALOGTABLE_SCHEMATABLE_NAMECONSTRAINT_TYPEIS_DEFERRABLEINITIALLY_DEFERREDENFORCEDCOMMENTCREATEDLAST_ALTEREDRELY
DBTESTPUBLICFK_Name_TestDATETESTPUBLICORDERSFOREIGN KEYNOYESNOnull2023-09-11 15:23:51.969 -07002023-09-11 15:23:52.097 -0700NO

Warnung

Die Ergebnisse unterscheiden sich aufgrund der Unterschiede bei den Spaltenobjekten und der fehlenden Äquivalenz. Das Ergebnis überprüft werden.

2. Name Column Case

SQL Server
 SELECT * FROM sys.foreign_keys WHERE name = 'FK_Name_Test';
Copy
nameobject_idprincipal_idschema_idtypetype_desccreate_datemodify_dateparent_object_idis_ms_shippedis_publishedis_schema_publishedreferenced_object_idkey_index_idis_disabledis_not_for_replicationis_not_trusteddelete_referential_actiondelete_referential_action_descupdate_referential_actionupdate_referential_action_descis_system_named
FK_Name_Test1719677174NULL1FFOREIGN_KEY_CONSTRAINT2023-09-11 22:20:04.1602023-09-11 22:20:04.1601687677060falsetruefalse16556769461falsefalse0NO_ACTION0NO_ACTIONtrue
Snowflake
 SELECT * FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE
CONSTRAINT_NAME = 'FK_NAME_TEST'
AND CONSTRAINT_TYPE = 'FOREIGN KEY';
Copy
CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMETABLE_CATALOGTABLE_SCHEMATABLE_NAMECONSTRAINT_TYPEIS_DEFERRABLEINITIALLY_DEFERREDENFORCEDCOMMENTCREATEDLAST_ALTEREDRELY
DBTESTPUBLICFK_Name_TestDATETESTPUBLICORDERSFOREIGN KEYNOYESNOnull2023-09-11 15:23:51.969 -07002023-09-11 15:23:52.097 -0700NO

Warnung

Diese Übersetzung muss möglicherweise überprüft werden, wenn der Name der Einschränkung von der Datenbank automatisch generiert und in der Abfrage verwendet wird. Weitere Informationen finden Sie im Abschnitt Bekannte Probleme.

3. Parent Object ID Case

In diesem Beispiel wurden eine Datenbank und ein Schema erstellt, um die Verarbeitung der Namen zur Erstellung unterschiedlicher und gleichwertiger Spalten zu veranschaulichen.

SQL Server
 use database_name_test
create schema schema_name_test

CREATE TABLE schema_name_test.Customers (
    CustomerID INT PRIMARY KEY,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    Email VARCHAR(100)
);

CREATE TABLE schema_name_test.Orders (
    OrderID INT PRIMARY KEY,
    CustomerID INT,
    OrderDate DATE,
    TotalAmount DECIMAL(10, 2),
    CONSTRAINT FK_Name_Test FOREIGN KEY (CustomerID) REFERENCES schema_name_test.Customers(CustomerID)
);

INSERT INTO schema_name_test.Customers (CustomerID, FirstName, LastName, Email)
VALUES
    (1, 'John', 'Doe', 'john.doe@example.com'),
    (2, 'Jane', 'Smith', 'jane.smith@example.com');

INSERT INTO schema_name_test.Orders (OrderID, CustomerID, OrderDate, TotalAmount)
VALUES
    (101, 1, '2023-09-01', 100.50),
    (102, 1, '2023-09-02', 75.25),
    (103, 2, '2023-09-03', 50.00);

SELECT * FROM sys.foreign_keys WHERE name = 'FK_Name_Test' AND parent_object_id = OBJECT_ID(N'database_name_test.schema_name_test.Orders')
Copy
nameobject_idprincipal_idschema_idtypetype_desccreate_datemodify_dateparent_object_idis_ms_shippedis_publishedis_schema_publishedreferenced_object_idkey_index_idis_disabledis_not_for_replicationis_not_trusteddelete_referential_actiondelete_referential_action_descupdate_referential_actionupdate_referential_action_descis_system_named
FK_Name_Test1719677174NULL1FFOREIGN_KEY_CONSTRAINT2023-09-11 22:20:04.1602023-09-11 22:20:04.1601687677060falsetruefalse16556769461falsefalse0NO_ACTION0NO_ACTIONtrue
Snowflake
 USE DATABASE database_name_test;

CREATE OR REPLACE SCHEMA schema_name_test
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"transact"}}'
;

CREATE OR REPLACE TABLE schema_name_test.Customers (
    CustomerID INT PRIMARY KEY,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    Email VARCHAR(100)
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"transact"}}'
;

CREATE OR REPLACE TABLE schema_name_test.Orders (
    OrderID INT PRIMARY KEY,
    CustomerID INT,
    OrderDate DATE,
    TotalAmount DECIMAL(10, 2),
       CONSTRAINT FK_Name_Test FOREIGN KEY (CustomerID) REFERENCES schema_name_test.Customers (CustomerID)
   )
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"transact"}}'
;

INSERT INTO schema_name_test.Customers (CustomerID, FirstName, LastName, Email)
VALUES
    (1, 'John', 'Doe', 'john.doe@example.com'),
    (2, 'Jane', 'Smith', 'jane.smith@example.com');

INSERT INTO schema_name_test.Orders (OrderID, CustomerID, OrderDate, TotalAmount)
VALUES
    (101, 1, '2023-09-01', 100.50),
    (102, 1, '2023-09-02', 75.25),
    (103, 2, '2023-09-03', 50.00);

SELECT * FROM
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE
    CONSTRAINT_NAME = 'FK_NAME_TEST'
    AND CONSTRAINT_CATALOG = 'DATABASE_NAME_TEST'
    AND CONSTRAINT_SCHEMA = 'SCHEMA_NAME_TEST'
    AND TABLE_NAME = 'ORDERS'
    AND CONSTRAINT_TYPE = 'FOREIGN KEY';
Copy
CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMETABLE_CATALOGTABLE_SCHEMATABLE_NAMECONSTRAINT_TYPEIS_DEFERRABLEINITIALLY_DEFERREDENFORCEDCOMMENTCREATEDLAST_ALTEREDRELY
DATABASE_NAME_TESTSCHEMA_NAME_TESTFK_Name_TestDATABASE_NAME_TESTSCHEMA_NAME_TESTORDERSFOREIGN KEYNOYESNOnull2023-09-11 15:23:51.969 -07002023-09-11 15:23:52.097 -0700NO

Warnung

Wenn der Name, der innerhalb der Funktion OBJECT_ID() kommt, kein gültiges Muster hat, wird er aufgrund von Beschränkungen bei der Verarbeitung von Sonderzeichen nicht konvertiert.

Warnung

Überprüfen Sie die Datenbank, die in Snowflake verwendet wird.

4. Type Column Case

Das ‚F‘ in SQL Server bedeutet „Fremdschlüssel“ und wird aufgrund der Validierung am Ende entfernt, um den Fremdschlüssel aus allen Tabelleneinschränkungen zu spezifizieren.

SQL Server
 SELECT * FROM sys.foreign_keys WHERE type = 'F';
Copy
nameobject_idprincipal_idschema_idtypetype_desccreate_datemodify_dateparent_object_idis_ms_shippedis_publishedis_schema_publishedreferenced_object_idkey_index_idis_disabledis_not_for_replicationis_not_trusteddelete_referential_actiondelete_referential_action_descupdate_referential_actionupdate_referential_action_descis_system_named
FK_Name_Test1719677174NULL3FFOREIGN_KEY_CONSTRAINT2023-09-11 22:20:04.1602023-09-11 22:20:04.1601687677060falsetruefalse16556769461falsefalse0NO_ACTION0NO_ACTIONtrue
Snowflake
 SELECT * FROM
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE
    type = 'F' AND CONSTRAINT_TYPE = 'FOREIGN KEY';
Copy
CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMETABLE_CATALOGTABLE_SCHEMATABLE_NAMECONSTRAINT_TYPEIS_DEFERRABLEINITIALLY_DEFERREDENFORCEDCOMMENTCREATEDLAST_ALTEREDRELY
DBTESTPUBLICFK_Name_TestDATETESTPUBLICORDERSFOREIGN KEYNOYESNOnull2023-09-11 15:23:51.969 -07002023-09-11 15:23:52.097 -0700NO

5. Type Desc Column Case

Die Spalte ‚type_desc‘ wird aufgrund der Validierung am Ende zur Angabe des Fremdschlüssels aus allen Tabelleneinschränkungen entfernt.

SQL Server
 SELECT
    * 
FROM
    sys.foreign_keys 
WHERE 
    type_desc = 'FOREIGN_KEY_CONSTRAINT';
Copy
nameobject_idprincipal_idschema_idtypetype_desccreate_datemodify_dateparent_object_idis_ms_shippedis_publishedis_schema_publishedreferenced_object_idkey_index_idis_disabledis_not_for_replicationis_not_trusteddelete_referential_actiondelete_referential_action_descupdate_referential_actionupdate_referential_action_descis_system_named
FK_Name_Test1719677174NULL3FFOREIGN_KEY_CONSTRAINT2023-09-11 22:20:04.1602023-09-11 22:20:04.1601687677060falsetruefalse16556769461falsefalse0NO_ACTION0NO_ACTIONtrue
Snowflake
 SELECT
    *
FROM
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE
    type_desc = 'FOREIGN_KEY_CONSTRAINT' AND CONSTRAINT_TYPE = 'FOREIGN KEY';
Copy
CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMETABLE_CATALOGTABLE_SCHEMATABLE_NAMECONSTRAINT_TYPEIS_DEFERRABLEINITIALLY_DEFERREDENFORCEDCOMMENTCREATEDLAST_ALTEREDRELY
DBTESTPUBLICFK_Name_TestDATETESTPUBLICORDERSFOREIGN KEYNOYESNOnull2023-09-11 15:23:51.969 -07002023-09-11 15:23:52.097 -0700NO

6. Modify Date Column Simple Case

SQL Server
 SELECT *
FROM sys.foreign_keys
WHERE modify_date = CURRENT_TIMESTAMP;
Copy
The query produced no results.

Copy
Snowflake
 SELECT *
FROM
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE
    LAST_ALTERED = CURRENT_TIMESTAMP()
    AND CONSTRAINT_TYPE = 'FOREIGN KEY';
Copy
The query produced no results.

Copy

7. Modify Date Column with DATEDIFF() Case

Das folgende Beispiel zeigt ein komplexeres Szenario, in dem sich die Spalten aus sys.foreign_keys (geerbt von sys.objects) innerhalb einer Funktion DATEDIFF befinden. In diesem Fall wird das Argument, das der zutreffenden Äquivalenz entspricht, in die entsprechende Spalte aus dem information.schema in Snowflake geändert.

SQL Server
 SELECT *
FROM sys.foreign_keys
WHERE DATEDIFF(DAY, modify_date, GETDATE()) <= 30;
Copy
The foreign keys altered in the last 30 days.

Copy
Snowflake
 SELECT *
FROM
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE
    DATEDIFF(DAY, LAST_ALTERED, CURRENT_TIMESTAMP() :: TIMESTAMP) <= 30
    AND CONSTRAINT_TYPE = 'FOREIGN KEY';
Copy
The foreign keys altered in the last 30 days.

Copy

8. Create Date Column Case

SQL Server
 SELECT *
FROM sys.foreign_keys
WHERE create_date = '2023-09-12 14:36:38.060';
Copy
The foreign keys that were created on the specified date and time.

Copy
Snowflake
 SELECT *
FROM
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE
    CREATED = '2023-09-12 14:36:38.060'
    AND CONSTRAINT_TYPE = 'FOREIGN KEY';
Copy
The foreign keys that were created on the specified date and time.

Copy

Warnung

Das Ergebnis kann sich ändern, wenn das Erstellungsdatum aufgrund der Zeit, zu der die Abfragen ausgeführt wurden, spezifisch ist. Es ist möglich, eine bestimmte Abfrage zu einem bestimmten Zeitpunkt in der Ursprungsdatenbank auszuführen und die Objekte dann zu einem anderen Zeitpunkt in den neuen Snowflake-Abfragen auszuführen.

9. Selected Columns Single Name Case

SQL Server
 SELECT name
FROM sys.foreign_keys;
Copy

name

FK_Name_Test

Snowflake
 SELECT
    CONSTRAINT_NAME
FROM
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE
    CONSTRAINT_TYPE = 'FOREIGN KEY';
Copy

CONSTRAINT_NAME

FK_Name_Test

10. Selected Columns Qualified Name Case

SQL Server
 SELECT
    fk.name
FROM sys.foreign_keys AS fk;
Copy

name

FK_Name_Test

Snowflake
 SELECT
    fk.CONSTRAINT_NAME
FROM
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS fk
WHERE
    CONSTRAINT_TYPE = 'FOREIGN KEY';
Copy

CONSTRAINT_NAME

FK_Name_Test

Bekannte Probleme

1. The ‚name‘ column may not show a correct output if the constraint does not have a user-created name

Wenn es sich bei dem referenzierten Namen um einen automatisch aus der Datenbank generierten Namen handelt, ist es wahrscheinlich, dass Sie ihn überprüfen und den gewünschten Wert verwenden.

2. When selecting columns, there is a limitation that depends on the applicable columns that are equivalent in Snowflake

Da die Spalten aus sys.foreign_keys in Snowflake nicht vollständig äquivalent sind, können sich einige Ergebnisse aufgrund der Beschränkungen der Äquivalenz ändern.

3. The OBJECT_ID() function may have a valid pattern to be processed or the database, schema or table could not be extracted

Ausgehend von dem Namen, der die Funktion OBJECT_ID() erhält, wird die Verarbeitung dieses Namens eingeschränkt und von der Formatierung abhängig sein.

4. Name Column With OBJECT_NAME() Function Case

Da die Funktion OBJECT_NAME() noch nicht unterstützt wird, werden die mit dieser Funktion verbundenen Transformationen nicht unterstützt.

 SELECT name AS ForeignKeyName,
       OBJECT_NAME(parent_object_id) AS ReferencingTable,
       OBJECT_NAME(referenced_object_id) AS ReferencedTable
FROM sys.foreign_keys;
Copy
 SELECT
    name AS ForeignKeyName,
    !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'OBJECT_NAME' NODE ***/!!!
    OBJECT_NAME(parent_object_id) AS ReferencingTable,
    !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'OBJECT_NAME' NODE ***/!!!
    OBJECT_NAME(referenced_object_id) AS ReferencedTable
FROM
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE
    CONSTRAINT_TYPE = 'FOREIGN KEY';
Copy
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.
7. Cases with JOIN statements are not supported.
8. Names with alias AS are not supported.

Zugehörige EWIs

  1. [SSC-EWI-0073](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0073): Überprüfung der Funktionsäquivalenz ausstehend.