SnowConvert AI - SQL Server-Azure Synapse - ALTER¶
ALTER 키워드 다음에 오는 모든 DDL 문에 대한 변환 참조
TABLE¶
설명¶
열 및 제약 조건을 변경, 추가 또는 삭제하여 테이블 정의를 수정했습니다. ALTER TABLE 은 파티션을 재할당 및 재구축하거나 제약 조건 및 트리거를 비활성화 및 활성화할 수도 있습니다. (https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-transact-sql)
CHECK CONSTRAINT¶
Applies to
SQL 서버
Azure 시냅스 분석
설명¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
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.
샘플 소스 패턴¶
SQL 서버¶
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¶
설명¶
참고
SQL Server에서 ADD 절은 ADD당 여러 작업을 허용하지만 Snowflake는 ADD 열 작업 시퀀스만 허용합니다. 결과적으로, SnowConvert AI는 ALTER TABLE ADD 절을 개별 ALTER TABLE 문으로 나눕니다.
ADD 키워드에서 제공하는 함수의 하위 집합이 있어 대상 테이블에 다양한 요소를 추가할 수 있습니다. 다음과 같은 오브젝트가 이에 해당합니다.
열 정의
계산된 열 정의
테이블 제약 조건
열 세트 정의
TABLE CONSTRAINT¶
Applies to
SQL 서버
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
ALTER TABLE 을 사용하여 테이블에 추가된 새 열 정의의 일부인 PRIMARY KEY, FOREIGN KEY, UNIQUE 또는 CHECK 제약 조건의 속성을 지정합니다.((https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-column-constraint-transact-sql)
열 제약 조건에 대한 변환은 비교적 간단합니다. 구문에는 필수가 없거나 Snowflake에서 지원되지 않는 부분이 몇 가지 있습니다.
이러한 부분에는 다음이 포함됩니다.
CLUSTERED | NONCLUSTEREDWITH FILLFACTOR = fillfactorWITH ( index_option [, ...n ] )ON { partition_scheme_name ( partition\_column\_name ) | filegroup | "default" }NOT FOR REPLICATIONCHECK [ NOT FOR REPLICATION ]
SQL 서버의 구문¶
[Snowflake]의 구문(https://docs.snowflake.com/en/sql-reference/sql/create-table-constraint.html#inline-unique-primary-foreign-key)¶
샘플 소스 패턴¶
여러 ALTER TABLE 인스턴스¶
SQL 서버¶
Snowflake¶
제약 조건 내의 DEFAULT¶
SQL 서버¶
Snowflake¶
Known Issues¶
1. DEFAULT 는 CREATE TABLE 및 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 서버
설명¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
When CHECK clause is in the ALTER statement, SnowConvert AI will comment out the entire statement, since it is not supported.
샘플 소스 패턴¶
SQL 서버¶
Snowflake¶
Known Issues¶
1. ALTER TABLE CHECK 절은 Snowflake에서 지원되지 않습니다.
ALTER TABLE CHECK 절 전체는 Snowflake에서 지원되지 않으므로 설명이 생략되어 있습니다.
관련 EWIs¶
SSC-EWI-0035: Check 문은 지원되지 않습니다.
CONNECTION¶
Applies to
SQL 서버
설명¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
CONNECTION 절이 ALTER 문에 있는 경우 SnowConvert AI에서 지원되지 않으므로 전체 문을 주석으로 처리합니다.
샘플 소스 패턴¶
SQL 서버¶
Snowflake¶
Known Issues¶
1. ALTER TABLE CONNECTION 절은 Snowflake에서 지원되지 않습니다.
ALTER TABLE CONNECTION 절 전체는 Snowflake에서 지원되지 않으므로 설명이 생략되어 있습니다.
관련 EWIs¶
SSC-EWI-0109: 테이블 변경 구문은 Snowflake에 적용할 수 없습니다.
DEFAULT¶
Applies to
SQL 서버
설명¶
DEFAULT 절이 ALTER 문에 있는 경우 SnowConvert AI에서 지원되지 않으므로 전체 문을 주석으로 처리합니다.
유일한 함수 시나리오는 테이블 정의가 동일한 파일에 있을 때 발생하며, 이러한 방식으로 기본값이 열 정의에 추가됩니다.
샘플 소스 패턴¶
SQL 서버¶
Snowflake¶
Known Issues¶
1. ALTER TABLE DEFAULT 절은 Snowflake에서 지원되지 않습니다.
ALTER TABLE DEFAULT 절 전체는 Snowflake에서 지원되지 않으므로 설명이 생략되어 있습니다.
관련 EWIs¶
SSC-FDM-TS0020: 기본 제약 조건이 설명되어 있으며 테이블 정의에 추가되었을 수 있습니다.
FOREIGN KEY¶
Applies to
SQL 서버
설명¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
Snowflake는 참조 무결성 제약 조건 문법과 그 속성을 지원하여 다른 데이터베이스에서 쉽게 마이그레이션할 수 있도록 합니다.
SQL 서버¶
Snowflake¶
샘플 소스 패턴¶
SQL 서버¶
Snowflake¶
참고
NOT NULL 을 제외하고 Snowflake에서는 제약 조건이 적용되지 않습니다.
기본 키와 외래 키는 디자인 제약 조건보다 설명서 용도로만 사용됩니다.
ON PARTITION¶
Applies to
SQL 서버
참고
관련 없는 문.
경고
이 문은 관련이 없는 구문이므로 마이그레이션에서 제거됩니다. 즉, Snowflake에서는 필요하지 않습니다.
설명¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
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.
샘플 소스 패턴¶
On Partition¶
이 예제에서는 ON PARTITION 이 제거된 것을 확인할 수 있습니다. 이는 Snowflake가 통합 파티션 방법론을 제공하기 때문입니다. 따라서 구문은 관련이 없습니다.
SQL SERVER¶
Snowflake¶
PRIMARY KEY¶
Applies to
SQL 서버
설명¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
SQL 서버 기본 키에는 Snowflake에 적용되지 않는 절이 많이 있습니다. 따라서 대부분의 문은 설명이 생략됩니다.
SQL 서버의 구문¶
Snowflake의 구문¶
샘플 소스 패턴¶
경고
WITH FILLFACTOR 문은 Snowflake 구문과 관련이 없으므로 변환에서 삭제되었습니다.
SQL 서버¶
Snowflake¶
COLUMN DEFINITION¶
ALTER TABLE ADD column_name
Applies to
SQL 서버
Azure 시냅스 분석
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
ALTER TABLE 을 사용하여 테이블에 추가되는 열의 속성을 지정합니다.
Snowflake에서 열 정의 를 추가하는 것은 SQL 서버와 비교하여 몇 가지 차이점이 있습니다.
예를 들어, SQL 서버 문법의 여러 부분은 필수가 없거나 Snowflake에서 완전히 지원되지 않습니다. 다음과 같은 오브젝트가 이에 해당합니다.
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 서버¶
Snowflake¶
샘플 소스 패턴¶
기본 패턴¶
이 패턴은 원본 ALTER TABLE 에서 요소를 제거한 것을 보여줍니다.
SQL 서버¶
Snowflake¶
COLLATE¶
데이터 정렬을 사용하면 문자열 비교에 대해 더 광범위한 규칙을 지정할 수 있습니다.
SQL 서버¶
데이터 정렬 규칙 명명법은 SQL 서버마다 다르므로 이를 조정해야 합니다.
Snowflake¶
MASKED WITH¶
이 패턴은 MASKED WITH 속성에 대한 변환을 나타냅니다. CREATE OR REPLACE MASKING POLICY는 첫 번째 사용 전에 어딘가에 삽입된 다음, SET MASKING POLICY 절에서 참조됩니다.
아래에 표시된 것처럼 새 MASKING POLICY의 이름은 원래 MASKED WITH FUNCTION의 이름과 인자를 연결해서 지정합니다.
SQL 서버¶
Snowflake¶
DEFAULT¶
이 패턴은 DEFAULT 속성에 대한 몇 가지 기본 변환 시나리오를 보여줍니다.
SQL 서버¶
Snowflake¶
ENCRYPTED WITH¶
이 패턴은 출력 코드에 설명되어 있는 ENCRYPTED WITH 속성에 대한 변환을 보여줍니다.
SQL 서버¶
Snowflake¶
NOT NULL¶
SQL Server NOT NULL 절은 Snowflake NOT NULL 절과 패턴 및 기능이 동일합니다.
SQL 서버¶
Snowflake¶
IDENTITY¶
이 패턴은 IDENTITY 에 대한 변환을 보여줍니다. NOT FOR REPLICATION 부분은 Snowflake에서 제거됩니다.
SQL 서버¶
Snowflake¶
지원되지 않는 절¶
FILESTREAM¶
FILESTREAM 의 원래 동작은 Snowflake에서 복제할 수 없으므로 ALTER TABLE 문 전체를 설명해야 합니다.
SQL 서버¶
Snowflake¶
SPARSE¶
SQL 서버에서 SPARSE 는 NULL 저장소에 최적화된 열을 정의하는 데 사용됩니다. 그러나 Snowflake를 사용하는 경우에는 이 절을 사용할 필요가 없습니다.
Snowflake는 테이블에 대한 최적화 를 자동으로 수행하므로 사용자가 수동으로 최적화할 필요성이 줄어듭니다.
SQL 서버¶
Snowflake¶
ROWGUIDCOL¶
SQL 서버¶
Snowflake¶
Known Issues¶
1. 마스킹 정책을 위해 역할과 사용자를 미리 설정해야 합니다
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.
경고
SnowConvert AI는 이 설정을 자동으로 수행하지 않습니다.
2. 마스킹 정책을 사용하려면 Snowflake Enterprise 계정 이상이 필요합니다.
The Snowflake documentation states that masking policies are available on Enterprise or higher rank accounts.
참고
자세한 내용은 CREATE MASKING POLICY — Snowflake 설명서 를 참조하십시오.
3. DEFAULT 는 상수 값만 지원합니다
SQL 서버의 DEFAULT 속성은 관련 값이 상수인 경우 Snowflake에서 부분적으로 지원됩니다.
4. FILESTREAM 절은 Snowflake에서 지원되지 않습니다.
FILESTSTREAM 절 전체는 Snowflake에서 지원되지 않으므로 설명이 생략되어 있습니다.
5. SPARSE 절은 Snowflake에서 지원되지 않습니다.
SPARSE 절 전체는 Snowflake에서 지원되지 않으므로 설명이 생략되어 있습니다. ALTER COLUMN 문 내에 추가되고 열에 대한 유일한 수정 사항인 경우 더 이상 아무것도 추가하지 않으므로 전체 문이 제거됩니다.
관련 EWIs¶
SSC-EWI-0040: 문은 지원되지 않습니다.
SSC-EWI-TS0061: ALTER COLUMN 지원되지 않음.
SSC-EWI-TS0078: 기본값은 Snowflake에서 허용되지 않습니다.
SSC-FDM-TS0009: Encrypted with는 Snowflake에서 지원되지 않습니다.
SSC-FDM-TS0021: MASKED WITH 를 대신하여 MASKING POLICY 가 생성되었습니다.
SSC-FDM-TS0022: 사용자가 이전에 마스킹 역할을 정의해야 합니다.
SSC-PRF-0002: 대/소문자를 구분하지 않는 열은 쿼리 성능을 저하시킬 수 있습니다.
COLUMN CONSTRAINT¶
ALTER TABLE ADD COLUMN … COLUMN CONSTRAINT
Applies to
SQL 서버
Azure 시냅스 분석
설명¶
테이블 변경을 사용하여 테이블에 추가된 새 열 제약 조건 의 일부인 PRIMARY KEY, FOREIGN KEY 또는 CHECK 의 속성을 지정합니다
SQL 서버¶
Snowflake¶
여기서
CHECK¶
Applies to
SQL 서버
설명¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
When CHECK clause is in the ALTER statement, SnowConvert AI will comment out the entire statement, since it is not supported.
샘플 소스 패턴¶
SQL 서버¶
Snowflake¶
Known Issues¶
1. ALTER TABLE CHECK 절은 Snowflake에서 지원되지 않습니다.
ALTER TABLE CHECK 절 전체는 Snowflake에서 지원되지 않으므로 설명이 생략되어 있습니다.
관련 EWIs¶
SSC-EWI-0035: Check 문은 지원되지 않습니다.
FOREIGN KEY¶
Applies to
SQL 서버
Azure 시냅스 분석
설명¶
The syntax for the Foreign Key is fully supported by Snowflake, except for the [ NOT FOR REPLICATION ] and the WITH CHECK clauses.
SQL 서버¶
자세한 내용은 다음 SQL 서버 설명서 를 참조하십시오.
Snowflake¶
샘플 소스 패턴¶
일반적인 경우¶
SQL 서버¶
Snowflake¶
WITH CHECK / NO CHECK 케이스¶
Snowflake 논리는 외래 키 생성 시 CHECK 절을 지원하지 않는다는 점에 유의하십시오. WITH CHECK 문은 지원되지 않는 것으로 표시되어 있습니다. 또한 WITH NO CHECK 절은 Snowflake의 기본 동작이고 동등성이 동일하기 때문에 제거되었습니다.
변환에 대한 이해를 돕기 위해 다음 예시를 검토해 보십시오.
SQL 서버¶
Snowflake¶
Known Issues¶
1. NOT FOR REPLICATION 절.
Snowflake는 복제 케이스에 대한 접근법이 다릅니다. 다음 설명서 를 검토하십시오.
2. WITH CHECK 절.
Snowflake는 WITH CHECK 문을 지원하지 않습니다. 자세한 내용은 다음 설명서 를 참조하십시오.
PRIMARY KEY / UNIQUE¶
Applies to
SQL 서버
Azure 시냅스 분석
설명¶
PRIMARY KEY/UNIQUE 제약 조건의 모든 선택적 절은 Snowflake에서 제거됩니다.
SQL 서버의 구문