SnowConvert AI - SQL Server-Azure Synapse - 뷰

Applies to
  • SQL 서버

  • Azure 시냅스 분석

참고

출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.

이 섹션에서는 생성하기 뷰에 대한 변환을 확인합니다.

샘플 소스 패턴

SIMPLE CREATE VIEW

다음 예제는 간단한 CREATE VIEW 문에 대한 변환을 보여줍니다.

Transact

CREATE VIEW VIEWNAME
AS
SELECT AValue from ATable;
Copy
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;
Copy

CREATE OR ALTER VIEW

SqlServer 에서 사용되는 CREATE OR ALTER 정의는 Snowflake에서 CREATE OR REPLACE 로 변환됩니다.

Transact

CREATE OR ALTER VIEW VIEWNAME
AS
SELECT AValue from ATable;
Copy

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;
Copy

CREATE VIEW WITH

이 유형의 뷰에서는 뷰 이름 뒤에 다음 절이 올 수 있습니다

  • WITH ENCRYPTION

  • WITH SCHEMABINDING

  • WITH VIEW_METADATA

경고

위의 절은 변환에서 제거되었습니다.Snowflake 구문과 관련이 없기 때문입니다.

Transact

CREATE OR ALTER VIEW VIEWNAME
WITH ENCRYPTION  
AS
SELECT AValue from ATable;
Copy

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;
Copy

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;
Copy

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;
Copy

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;
Copy

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;
Copy

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
Copy

FINAL SAMPLE

최종 샘플을 살펴보고 지금까지 본 모든 케이스를 종합하고 변환이 어떻게되는지 살펴 보겠습니다

Transact

CREATE OR ALTER VIEW VIEWNAME
WITH ENCRYPTION  
AS  
Select AValue from ATable
WITH CHECK OPTION;  
Copy
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;
Copy

보시다시피 OR ALTEROR REPLACE 로 변경하고 뷰 이름 뒤에 오는 WITH ENCRYPTION 절과 선택 뒤에 오는 WITH CHECK OPTION 절을 제거했습니다.