Ich schreibe eine dynamische SQL zum Löschen und Erstellen von Ansichten in verschiedenen Datenbanken.
Also schrieb ich:
set @CreateViewStatement =
'
USE ['+ @DB +'];
CREATE VIEW [dbo].[MyTable]
AS
SELECT ........something
exec (@CreateViewStatement)
Es gibt mir Fehler:
'CREATE VIEW' muss die erste Anweisung in einem Abfragebatch sein.
Wenn ich die USE DATABASE-Anweisung entferne, funktioniert sie einwandfrei, aber dann wird die Datenbank nicht mehr angegeben.
Wie kann ich dieses Problem lösen?
sql-server
sql-server-2005
dynamic-sql
König Chan
quelle
quelle
Eine Möglichkeit, die ich beim Aufrufen dieses Falls ergriffen habe, besteht darin, die Anweisung GO after use zu platzieren.
quelle
GO
ist ein Batch-Begrenzer in den Client-Tools, kein TSQL-Schlüsselwort.