Transazione di SQL mediante WITH in CREATE VIEW


14

Voglio creare VIEW usando le clausole WITH, ma non riesco davvero a trovare riferimenti sulla sintassi corretta.

Voglio smth in questo modo

WITH TempTbl AS (SELECT ...)
CREATE VIEW SomeView
SELECT *
FROM TempTbl

E qual è la sintassi corretta per l'utilizzo di più clausole WITH?

Niente di utile su MSDN :(

Risposte:


25

Il CTE entra nella vista.

Rispondi a una query con un CTE

WITH cte AS (...) SELECT ...;

Aggiungi CREATE VIEW AS .. GO

CREATE VIEW
AS
WITH cte AS (...) SELECT ...;
GO

MSDN descrive più CTE (vedi esempio j)

CREATE VIEW
AS
WITH
   cte1 AS (...),
   cte2 AS (...),
   cte3 AS (...)
SELECT ...
GO

Il trucco per me era rimuovere alcune parentesi extra. create view myView as ( select ... )funziona e create view myView as with tempTbl as select ...funziona ma create view myView as ( with tempTbl as select ... )è un errore di sintassi. `
Molomby,

6
CREATE VIEW 
someview
AS
WITH CTEstuff AS (SELECT etc)
SELECT * FROM CTESTuff;

benvenuto su dba.se e grazie per il contributo. Solo per questo, la domanda qui è davvero troppo basilare per il sito e probabilmente sarà chiusa, ma ciò non riflette la tua risposta :) Date le tue capacità su SQL Server e Postgres ci saranno molte più domande sull'argomento la tua strada, quindi spero che rimarrai.
Jack dice di provare topanswers.xyz il

A proposito Postgres è fantastico! (parlando come un Oracle DBA) Sono sicuro che sei d'accordo :)
Jack dice di provare topanswers.xyz il

1
Bello essere qui. Penso che sarebbe un peccato considerare qualsiasi domanda troppo semplice; anche se sono d'accordo che potrebbe non essere una domanda di amministrazione e potrebbe appartenere a un forum diverso, forse lo scambio di stack stesso. Anyhoo grazie!
Scott Herbert,

Penso che tu abbia ragione, quindi è probabilmente la cosa migliore, ma cerchiamo di essere un po 'flessibili, soprattutto se le persone hanno già cercato di rispondere prima di notare :)
Jack dice che prova topanswers.xyz il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.