SnowConvert AI – SQL Server – Azure Synapse – Ansichten¶
Applies to
SQL Server
Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
In diesem Abschnitt werden wir die Transformation für „Create View“ überprüfen.
Beispielhafte Quellcode-Muster¶
SIMPLE CREATE VIEW¶
Das folgende Beispiel zeigt eine Transformation für eine einfache CREATE VIEW-Anweisung.
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¶
Die in SqlServer verwendete Definition CREATE OR ALTER wird in Snowflake in CREATE OR REPLACE umgewandelt.
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¶
In dieser Art von Ansicht können nach dem Namen der Ansicht die folgenden Klauseln stehen
WITH ENCRYPTIONWITH SCHEMABINDINGWITH VIEW_METADATA
Warnung
Beachten Sie, dass die oben genannten Klauseln aus der Übersetzung entfernt wurden, da sie in der Snowflake-Syntax nicht relevant sind.
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¶
Bei dieser Art von Ansicht kommt die Klausel WITH CHECK OPTION nach dem Ende der SELECT-Anweisung, die in „Create View“ verwendet wird.
Warnung
Beachten Sie, dass WITH CHECK OPTIONaus der Übersetzung entfernt wurde, da es in der Snowflake-Syntax nicht relevant ist.
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¶
Zum Abrufen der Daten müssen allgemeine Tabellenausdrücke verwendet werden:
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¶
Übliche Tabellenausdrücke mit Update-, Insert- oder DELETE-Anweisungen werden auskommentiert, da sie in Snowflake und SQLServer nicht unterstützt werden.
Wenn der Ansicht eine ungültige CTE hinzugefügt wird, wird diese vollständig auskommentiert.
--!!!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¶
Schauen wir uns ein letztes Beispiel an, fassen wir alle Fälle zusammen, die wir bisher gesehen haben, und sehen wir, wie die Transformation aussehen würde
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;
Wie Sie sehen können, haben wir OR ALTER durch OR REPLACE ersetzt und die Klausel WITH ENCRYPTION, die nach dem Namen der Ansicht kommt, sowie die Klausel WITH CHECK OPTION, die nach Select kommt, entfernt.