SnowConvert AI - SQL Server-Azure Synapse - Exibições¶
Applies to
SQL Server
Azure Synapse Analytics
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Nesta seção, verificaremos a transformação para Create View.
Amostra de padrões da origem¶
SIMPLE CREATE VIEW¶
O exemplo a seguir mostra uma transformação para uma instrução CREATE VIEW simples.
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¶
A definição CREATE OR ALTER usada no SqlServer é transformada em CREATE OR REPLACE no 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¶
Nesse tipo de visualização, após o nome da visualização, podem vir as seguintes cláusulas
WITH ENCRYPTIONWITH SCHEMABINDINGWITH VIEW_METADATA
Aviso
Observe que as cláusulas acima foram removidas da conversão, pois não são relevantes na sintaxe do 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¶
Nesse tipo de visualização, a cláusula WITH CHECK OPTION vem depois do final da instrução Select usada em Create View.
Aviso
Observe que WITH CHECK OPTIONfoi removido da conversão, pois não é relevante na sintaxe do 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¶
As expressões de tabela comuns devem ser usadas para recuperar os dados:
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¶
As expressões de tabela comuns com instruções Update, Insert ou Delete serão comentadas porque não são compatíveis com o Snowflake e o SQLServer.
No caso de um CTE inválido ser adicionado à visualização, ele será completamente comentado.
--!!!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¶
Vamos ver um exemplo final, vamos juntar todos os casos que vimos até agora e ver como seria a transformação
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;
Como você pode ver, alteramos OR ALTER por OR REPLACE e removemos a cláusula WITH ENCRYPTION que vem depois do nome da visualização e WITH CHECK OPTION que vem depois do Select.