SnowConvert AI - SQL Server-Azure Synapse - 뷰¶
Applies to
SQL 서버
Azure 시냅스 분석
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
이 섹션에서는 생성하기 뷰에 대한 변환을 확인합니다.
샘플 소스 패턴¶
SIMPLE CREATE VIEW¶
다음 예제는 간단한 CREATE VIEW 문에 대한 변환을 보여줍니다.
Transact¶
CREATE VIEW VIEWNAME
AS
SELECT AValue from ATable;
Snowflake¶
CREATE OR REPLACE VIEW VIEWNAME
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'
AS
SELECT
AValue
from
ATable;
CREATE OR ALTER VIEW¶
SqlServer 에서 사용되는 CREATE OR ALTER 정의는 Snowflake에서 CREATE OR REPLACE 로 변환됩니다.
Transact¶
CREATE OR ALTER VIEW VIEWNAME
AS
SELECT AValue from ATable;
Snowflake¶
CREATE OR REPLACE VIEW VIEWNAME
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'
AS
SELECT
AValue
from
ATable;
CREATE VIEW WITH¶
이 유형의 뷰에서는 뷰 이름 뒤에 다음 절이 올 수 있습니다
WITH ENCRYPTIONWITH SCHEMABINDINGWITH VIEW_METADATA
경고
Notice that the above clauses are removed from the translation. because they are not relevant in Snowflake syntax.
Transact¶
CREATE OR ALTER VIEW VIEWNAME
WITH ENCRYPTION
AS
SELECT AValue from ATable;
Snowflake¶
CREATE OR REPLACE VIEW VIEWNAME
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'
AS
SELECT
AValue
from
ATable;
CREATE VIEW AS SELECT WITH CHECK OPTION¶
이 유형의 뷰에서 WITH CHECK OPTION 절은 뷰 생성하기에 사용되는 Select 문 뒤에옵니다.
경고
WITH CHECK OPTION 은 Snowflake 구문과 관련이 없으므로 변환에서 삭제되었습니다.
Transact¶
CREATE OR ALTER VIEW VIEWNAME
AS
SELECT AValue from ATable
WITH CHECK OPTION;
Snowflake¶
CREATE OR REPLACE VIEW VIEWNAME
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'
AS
SELECT
AValue
from
ATable;
CREATE VIEW AS COMMON TABLE EXPRESSION¶
데이터를 검색하려면 공통 테이블 식을 사용해야 합니다.
Transact¶
CREATE VIEW EMPLOYEEIDVIEW
AS
WITH CTE AS ( SELECT NationalIDNumber from [HumanResources].[Employee]
UNION ALL
SELECT BusinessEntityID FROM [HumanResources].[EmployeeDepartmentHistory] )
SELECT * FROM MyCTE;
Snowflake¶
CREATE OR REPLACE VIEW EMPLOYEEIDVIEW
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'
AS
--** SSC-PRF-TS0001 - PERFORMANCE WARNING - RECURSION FOR CTE NOT CHECKED. MIGHT REQUIRE RECURSIVE KEYWORD **
WITH CTE AS ( SELECT
NationalIDNumber
from
HumanResources.Employee
UNION ALL
SELECT
BusinessEntityID
FROM
HumanResources.EmployeeDepartmentHistory
)
SELECT
*
FROM
MyCTE;
UNSUPPORTED SCENARIOS¶
업데이트, 삽입 또는 삭제 문이 포함된 일반적인 테이블 식은 Snowflake 및 SQLServer 에서 지원되지 않으므로 설명이 생략됩니다.
유효하지 않은 CTE 가 뷰에 추가되는 경우 완전히 설명이 생략됩니다.
--!!!RESOLVE EWI!!! /*** SSC-EWI-0021 - COMMON TABLE EXPRESSION IN VIEW NOT SUPPORTED ***/!!!
--CREATE OR REPLACE VIEW PUBLIC.EmployeeInsertVew
--AS
--WITH MyCTE AS ( SELECT
--NationalIDNumber
--from
--HumanResources.Employee
--UNION ALL
--SELECT
--BusinessEntityID
--FROM
--HumanResources.EmployeeDepartmentHistory
--)
--INSERT INTO PUBLIC.Dummy
FINAL SAMPLE¶
최종 샘플을 살펴보고 지금까지 본 모든 케이스를 종합하고 변환이 어떻게되는지 살펴 보겠습니다
Transact¶
CREATE OR ALTER VIEW VIEWNAME
WITH ENCRYPTION
AS
Select AValue from ATable
WITH CHECK OPTION;
Snowflake¶
CREATE OR REPLACE VIEW VIEWNAME
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'
AS
Select
AValue
from
ATable;
보시다시피 OR ALTER 을 OR REPLACE 로 변경하고 뷰 이름 뒤에 오는 WITH ENCRYPTION 절과 선택 뒤에 오는 WITH CHECK OPTION 절을 제거했습니다.