SnowConvert AI - Serveur SQL-Azure Synapse - Vues

Applies to
  • SQL Server

  • Azure Synapse Analytics

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Dans cette section, nous allons vérifier la transformation pour Create View.

Modèles d’échantillons de sources

SIMPLE CREATE VIEW

L’exemple suivant montre une transformation pour une instruction CREATE VIEW simple.

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

La définition de CREATE OR ALTER utilisée dans SqlServer est transformée en CREATE OR REPLACE dans Snowflake.

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

Dans ce type de vue, après le nom de la vue, on peut trouver les clauses suivantes

  • WITH ENCRYPTION

  • WITH SCHEMABINDING

  • WITH VIEW_METADATA

Avertissement

Notez que les clauses ci-dessus sont supprimées de la traduction, parce qu’elles ne sont pas pertinentes dans la syntaxe 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

Dans ce type de vue, la clause WITH CHECK OPTION vient après la fin de l’instruction Select utilisée dans Create View.

Avertissement

Notez que WITH CHECK OPTIONa été supprimé de la traduction, car il n’est pas pertinent dans la syntaxe 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

Des expressions de table communes doivent être utilisées pour récupérer les données :

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

Les expressions de table courantes avec des instructions de mise à jour, d’insertion ou de suppression seront commentées car elles ne sont pas prises en charge par Snowflake et SQLServer.

Dans le cas où une CTE invalide est ajoutée à la vue, celle-ci sera complètement commentée.

 --!!!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

Voyons un dernier échantillon, rassemblons tous les cas que nous avons vus jusqu’à présent et voyons comment se ferait la transformation

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

Comme vous pouvez le voir, nous avons remplacé OR ALTER par OR REPLACE et nous avons supprimé la clause WITH ENCRYPTION qui vient après le nom de la vue et la clause WITH CHECK OPTION qui vient après le Select.