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;
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¶
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;
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¶
Dans ce type de vue, après le nom de la vue, on peut trouver les clauses suivantes
WITH ENCRYPTIONWITH SCHEMABINDINGWITH 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;
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¶
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;
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¶
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;
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¶
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
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;
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;
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.