SnowConvert AI - SQL Server-Azure Synapse - 시스템 테이블¶
Transact-SQL 시스템 테이블에 대한 변환 사양
시스템 테이블¶
Transact-SQL |
Snowflake SQL |
참고 |
|
|---|---|---|---|
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 |
지원되지 않음 |
||
SYS.ALL_SQL_MODULES |
지원되지 않음 |
||
SYS.ALLOCATION_UNITS |
지원되지 않음 |
||
SYS.ASSEMBLY_MODULES |
지원되지 않음 |
||
SYS.CHECK_CONSTRAINTS |
지원되지 않음 |
||
SYS.COLUMN_STORE_DICTIONARIES |
지원되지 않음 |
||
SYS.COLUMN_STORE_ROW_GROUPS |
지원되지 않음 |
||
SYS.COLUMN_STORE_SEGMENTS |
지원되지 않음 |
||
SYS.COMPUTED_COLUMNS |
지원되지 않음 |
||
SYS.DEFAULT_CONSTRAINTS |
지원되지 않음 |
||
SYS.EVENTS |
지원되지 않음 |
||
SYS.EVENT_NOTIFICATIONS |
지원되지 않음 |
||
SYS.EVENT_NOTIFICATION_EVENT_TYPES |
지원되지 않음 |
||
SYS.EXTENDED_PROCEDURES |
지원되지 않음 |
||
SYS.EXTERNAL_LANGUAGE_FILES |
지원되지 않음 |
||
SYS.EXTERNAL_LANGUAGES |
지원되지 않음 |
||
SYS.EXTERNAL_LIBRARIES |
지원되지 않음 |
||
SYS.EXTERNAL_LIBRARY_FILES |
지원되지 않음 |
||
SYS.FOREIGN_KEYS |
INFORMATION_SCHEMA.TABLE_CONSTRAINTS |
||
SYS.FOREIGN_KEY_COLUMNS |
지원되지 않음 |
||
SYS.FUNCTION_ORDER_COLUMNS |
지원되지 않음 |
||
SYS.HASH_INDEXES |
지원되지 않음 |
||
SYS.INDEXES |
지원되지 않음 |
||
SYS.INDEX_COLUMNS |
지원되지 않음 |
||
SYS.INDEX_RESUMABLE_OPERATIONS |
지원되지 않음 |
||
SYS.INTERNAL_PARTITIONS |
지원되지 않음 |
||
SYS.INTERNAL_TABLES |
지원되지 않음 |
||
SYS.KEY_CONSTRAINTS |
지원되지 않음 |
||
SYS.MASKED_COLUMNS |
지원되지 않음 |
||
SYS.MEMORY_OPTIMIZED_TABLES_INTERNAL_ATTRIBUTES |
지원되지 않음 |
||
SYS.MODULE_ASSEMBLY_USAGES |
지원되지 않음 |
||
SYS.NUMBERED_PROCEDURES |
지원되지 않음 |
||
SYS.NUMBERED_PROCEDURE_PARAMETERS |
지원되지 않음 |
||
SYS.PARAMETERS |
지원되지 않음 |
||
SYS.PARTITIONS |
지원되지 않음 |
||
SYS.PERIODS |
지원되지 않음 |
||
SYS.SERVER_ASSEMBLY_MODULES |
지원되지 않음 |
||
SYS.SERVER_EVENTS |
지원되지 않음 |
||
SYS.SERVER_EVENT_NOTIFICATIONS |
지원되지 않음 |
||
SYS.SERVER_SQL_MODULE |
지원되지 않음 |
||
SYS.SERVER_TRIGGERS |
지원되지 않음 |
||
SYS._SERVER_TRIGGER_EVENTS |
지원되지 않음 |
||
SYS.SQL_DEPENDENCIES |
지원되지 않음 |
||
SYS.SQL_EXPRESSION_DEPENDENCIES |
지원되지 않음 |
||
SYS.SQL_MODULES |
지원되지 않음 |
||
SYS.STATS |
지원되지 않음 |
||
SYS.STATS_COLUMNS |
지원되지 않음 |
||
SYS.SYNONYMS |
지원되지 않음 |
||
SYS.SYSTEM_COLUMNS |
지원되지 않음 |
||
SYS.SYSTEM_OBJECTS |
지원되지 않음 |
||
SYS.SYSTEM_PARAMETERS |
지원되지 않음 |
||
SYS.SYSTEM_SQL_MODULES” |
지원되지 않음 |
SYS.FOREIGN_KEYS¶
Applies to
SQL 서버
Azure 시냅스 분석
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
오브젝트 당 FOREIGN KEY 제약 조건인 행을 포함합니다(SQLServer 설명서).
FOREIGN KEY (sys.foreign_keys)의 열은 다음과 같습니다.
열 이름 |
데이터 타입 |
설명 |
Snowflake에 동등한 열이 있습니다. |
|---|---|---|---|
- |
이 뷰가 상속하는 열 목록은 sys.objects (Transact-SQL)를 참조하세요. |
부분 |
|
referenced_object_id |
int |
참조된 오브젝트의 ID입니다. |
아니요 |
key_index_id |
int |
참조된 오브젝트 내 키 인덱스의 ID입니다. |
아니요 |
is_disabled |
bit |
FOREIGN KEY 제약 조건이 비활성화됩니다. |
아니요 |
is_not_for_replication |
bit |
FOREIGN KEY 제약 조건이 NOT FOR REPLICATION 옵션을 사용하여 생성되었습니다. |
아니요 |
is_not_trusted |
bit |
FOREIGN KEY 제약 조건은 시스템에서 확인되지 않았습니다. |
아니요 |
delete_referential_action |
tinyint |
삭제가 발생할 때 이 FOREIGN KEY에 대해 선언된 참조 작업입니다. SQLServer 설명서를 참조하세요. |
아니요 |
delete_referential_action_desc |
nvarchar(60) |
삭제가 발생할 때 이 FOREIGN KEY에 대해 선언된 참조 작업에 대한 설명입니다. SQLServer 설명서를 참조하세요. |
아니요 |
update_referential_action |
tinyint |
업데이트가 발생할 때 이 FOREIGN KEY에 대해 선언된 참조 작업입니다. SQLServer 설명서를 참조하세요. |
아니요 |
update_referential_action_desc |
nvarchar(60) |
업데이트가 발생할 때 이 FOREIGN KEY에 대해 선언된 참조 작업에 대한 설명입니다. SQLServer 설명서를 참조하세요. |
아니요 |
is_system_named |
bit |
1 = 시스템에서 이름이 생성되었습니다. |
아니요 |
sys.objects 에서 상속된 열은 다음과 같습니다.
자세한 내용은 sys.objects 설명서 를 참조하십시오.
열 이름 |
데이터 타입 |
설명 |
Snowflake에 동등한 열이 있습니다. |
|---|---|---|---|
이름 |
sysname |
오브젝트 이름입니다. |
예 |
object_id |
int |
오브젝트 식별 번호입니다. 데이터베이스 내에서 고유합니다. |
아니요 |
principal_id |
int |
스키마 소유자와 다른 경우 개별 소유자의 ID입니다. |
아니요 |
schema_id |
int |
오브젝트가 포함된 스키마의 ID입니다. |
아니요 |
parent_object_id |
int |
이 오브젝트가 속한 오브젝트의 ID입니다. |
아니요 |
타입 |
char(2) |
오브젝트 타입 |
예 |
type_desc |
nvarchar(60) |
오브젝트 유형에 대한 설명입니다. |
예 |
create_date |
날짜/시간 |
오브젝트가 생성된 날짜입니다. |
예 |
modify_date |
날짜/시간 |
ALTER 문을 사용하여 오브젝트를 마지막으로 수정한 날짜입니다. |
예 |
is_ms_shipped |
bit |
오브젝트는 내부 SQL Server 구성 요소에서 생성됩니다. |
아니요 |
is_published |
bit |
오브젝트는 내부 SQL Server 구성 요소에서 생성됩니다. |
아니요 |
is_schema_published |
bit |
오브젝트의 스키마만 게시됩니다. |
아니요 |
경고
이 경우 sys.foreign_keys의 경우 Snowflake에 동등성이 없다는 점에 유의하십시오. 그러나 동등성은 sys.objects에서 상속된 열에서 기본적으로 생성됩니다.
애플리케이션 열 등가성¶
SQLServer |
Snowflake |
제한 사항 |
적용 가능 |
|---|---|---|---|
이름 |
CONSTRAINT_NAME |
데이터베이스에서 자동 생성된 이름은 대상 Snowflake에서 자동 생성된 이름으로 검토될 수 있습니다. |
예 |
타입 |
CONSTRAINT_TYPE |
유형 열에는 다양한 옵션이 있습니다. 그러나 이 경우에는 외래 키를 나타내는 문자 ‘F’만 지원됩니다. |
아니요. 모든 테이블 제약 조건에서 외래 키를 확인하기 위한 추가 유효성 검사로 인해 적용할 수 없습니다. |
type_desc |
CONSTRAINT_TYPE |
No limitations found. |
아니요. 모든 테이블 제약 조건에서 외래 키를 확인하기 위한 추가 유효성 검사로 인해 적용할 수 없습니다. |
create_date |
CREATED |
데이터 타입의 차이점. |
예 |
modify_date |
LAST_ALTERED |
데이터 타입의 차이점. |
예 |
parent_object_id |
CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME |
OBJECT_ID() 함수를 사용하는 사례에 대해서만 열이 생성되고 이름에는 유효한 패턴이 있습니다. |
예 |
SQL 서버의 구문¶
Snowflake의 구문¶
참고
시스템 외래 키에 대한 등가물은 Snowflake의 카탈로그 뷰에서 ormation_schema.table_constraints이므로, 다른 제약 조건에서 외래 키 제약 조건을 식별하려면 추가 ‘WHERE’ 절에서 제약 조건의 유형을 정의해야 합니다.
샘플 소스 패턴¶
다음 샘플을 올바르게 수행하려면 다음 문을 실행해야 합니다.
SQL 서버¶
Snowflake¶
1. Simple Select Case¶
SQL 서버¶
결과¶
이름 |
object_id |
principal_id |
schema_id |
타입 |
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¶
결과¶
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 |
경고
열 오브젝트의 차이와 누락된 동등성으로 인해 결과가 달라집니다. 결과를 확인할 수 있습니다.
2. Name Column Case¶
SQL 서버¶
결과¶
이름 |
object_id |
principal_id |
schema_id |
타입 |
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¶
결과¶
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 |
경고
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¶
이 예제에서는 서로 다른 동등한 열을 생성하기 위한 이름 처리의 예시를 보여주기 위해 데이터베이스와 스키마를 생성했습니다.
SQL 서버¶
결과¶
이름 |
object_id |
principal_id |
schema_id |
타입 |
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¶
결과¶
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 |
경고
OBJECT_ID() 함수 안에 오는 이름에 유효한 패턴이 없는 경우 특수 문자에 대한 이름 처리 제한으로 인해 변환되지 않습니다.
경고
Snowflake에서 사용 중인 데이터베이스를 검토합니다.
4. Type Column Case¶
SQL 서버의 ‘F’는 ‘외래 키’를 의미하며, 모든 테이블 제약 조건에서 외래 키를 지정하기 위해 마지막에 유효성 검사로 인해 제거됩니다.
SQL 서버¶
결과¶
이름 |
object_id |
principal_id |
schema_id |
타입 |
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¶
결과¶
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¶
‘type_desc’ 열은 모든 테이블 제약 조건에서 외래 키를 지정하기 위해 끝 부분의 유효성 검사로 인해 제거됩니다.
SQL 서버¶
결과¶
이름 |
object_id |
principal_id |
schema_id |
타입 |
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¶
결과¶
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 서버¶
결과¶
Snowflake¶
결과¶
7. Modify Date Column with DATEDIFF() Case¶
다음 예제에서는 sys.foreign_keys(sys.objects에서 상속된)의 열이 DATEDIFF 함수의 내부에 있는 보다 복잡한 시나리오를 보여줍니다. 이 경우 해당 등가물에 해당하는 인자는 Snowflake의 Information Schema에서 해당 열로 변경됩니다.
SQL 서버¶
결과¶
Snowflake¶
결과¶
8. Create Date Column Case¶
SQL 서버¶
결과¶
Snowflake¶
결과¶
경고
쿼리가 실행된 시간으로 인해 생성 날짜가 특정할 경우 결과가 변경될 수 있습니다. 원본 데이터베이스에서 지정된 쿼리를 한 번에 실행한 다음 새로운 Snowflake 쿼리에서 오브젝트를 다른 시간에 실행할 수 있습니다.
9. Selected Columns Single Name Case¶
SQL 서버¶
결과¶
이름 |
|---|
FK_Name_Test |
Snowflake¶
결과¶
CONSTRAINT_NAME |
|---|
FK_Name_Test |
10. Selected Columns Qualified Name Case¶
SQL 서버¶
결과¶
이름 |
|---|
FK_Name_Test |
Snowflake¶
결과¶
CONSTRAINT_NAME |
|---|
FK_Name_Test |
Known Issues¶
1. The ‘name’ column may not show a correct output if the constraint does not have a user-created name¶
참조된 이름이 데이터베이스에서 자동 생성된 이름인 경우 이를 검토하여 원하는 값을 사용할 가능성이 높습니다.
2. When selecting columns, there is a limitation that depends on the applicable columns that are equivalent in Snowflake¶
Sys.foreign_keys의 열은 Snowflake에서 완전히 동일하지 않으므로 동등성 제한으로 인해 일부 결과가 변경될 수 있습니다.
3. The OBJECT_ID() function may have a valid pattern to be processed or the database, schema or table could not be extracted¶
OBJECT_ID() 함수를 수신하는 이름에 따라 이 이름의 처리는 형식에 따라 제한되고 종속성을 갖습니다.
4. Name Column With OBJECT_NAME() Function Case¶
OBJECT_NAME() 함수는 아직 지원되지 않으므로 이 함수와 관련된 변환은 지원되지 않습니다.