EDIT: Die Funktion Schöpfung ist, tut mir leid, dass ich eine T-SQL-AnfrageWie überprüfe ich das Vorhandensein eines SQL-Server-Objekts und lasse es fallen?
fehlt, das lautet:
DECLARE @IsSomething bit
SET @IsSomething = 0
IF /some tests/ SET @IsSomething = 1
EXEC('
CREATE FUNCTION IsSomething()
RETURNS bit
AS
BEGIN
RETURN ' + @IsSomething + '
END')
Natürlich
wenn ich es zweimal ausführen ichThere is already an object named 'IsSomething ' in the database.
Wie würde ich etwas tun:
IF EXIST @IsSomething DESTROY @IsSomething // (Pseudo bad code)
Wenn ich @IsSomething zweimal deklariere, bekomme ich: 'Der Variablenname' @IsSomething 'wurde bereits deklariert. Variablennamen müssen innerhalb eines Abfrage-Batches oder einer gespeicherten Prozedur eindeutig sein. ' Haben Sie die Bedingung/Antwort nur als Beispiel nicht berücksichtigt? Wenn ja, könnte es erklären, warum die Leute die Frage ein wenig verwirrend finden ... –
All dies - abgesehen von Variablennamen - ist genau das, was ich gemacht habe/die Fehler, die ich bekommen habe. Ein bisschen weiter vorne habe ich auch ein "SET @IsSomething = 1", ich füge das zur Frage hinzu – marcgg
@IsSomething ist kein Datenbankobjekt; es ist eine T-SQL-Variable. Wenn bei einem vorhandenen Objekt ein Fehler aufgetreten ist, wurde dieses Objekt mit CREATE [table | erstellt Ansicht | Index | etc] Aussage, nicht DECLARE. –