3 Stimmen

Wie erstellt man eine Ansicht und wählt aus ihr in einer EINZIGEN Abfrageausführung aus?

Ich möchte ein Veiw erstellen und dann in einer Abfrage daraus auswählen, würden Sie mir bitte sagen, wie es möglich ist, den Code unten:

create view myView as
select [Order Details].Discount from [Order Details]
select * from myView

Wenn ich den Code ausführen möchte, muss ich zuerst den Teil auswählen, der sich auf die Erstellung einer Ansicht bezieht, und dann muss ich den nächsten Teil auswählen, der sich auf die Auswahl aus dieser Ansicht bezieht. Ich wollte wissen, wie diese beiden Abfragen zusammen ausgeführt werden, wenn wir die Abfrage ausführen, wird die Ansicht erstellt und dann wird die Auswahl ausgeführt.

jetzt möchte ich hinzufügen, dass, wenn ich einmal erstellen, dass veiw das andere Mal SQL gibt mir Fehler. wie kann ich dies beheben? bedeuten, dass das Objekt nur einmal erstellt werden wird

6voto

Pranay Rana Punkte 170480

Schreiben Sie einfach Go nach dem Befehl wird für Sie arbeiten

create view myView as
select [Order Details].Discount from [Order Details]
Go
select * from myView
Go

Sie können auch CTE verwenden, wenn die Ansicht nicht erforderlich ist.

-- Define the CTE expression name and column list.
WITH Sales_CTE (Discount)
AS
-- Define the CTE query.
(
    select [Order Details].Discount from [Order Details]
)
-- Define the outer query referencing the CTE name.
SELECT *
FROM Sales_CTE

1voto

Martin Smith Punkte 417623

Sie können auch Folgendes verwenden exec für diese

IF OBJECT_ID('dbo.myView','V') IS NULL
    EXEC ('create view dbo.myView as
    select [Order Details].Discount from [Order Details]
    ')

SELECT * FROM myView

0 Stimmen

Jetzt möchte ich hinzufügen, dass, wenn ich einmal erstellen, dass veiw das andere Mal SQL gibt mir Fehler. wie kann ich dies beheben? bedeuten, dass das Objekt nur einmal erstellt werden wird

0 Stimmen

Nein, Herr Smith, leider funktioniert Ihr Code nicht und gibt eine Fehlermeldung aus, bitte helfen Sie mir.

0 Stimmen

Nein, das Problem ist gelöst, es war ein Syntaxfehler von meiner Seite.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X