Ich habe viel Code Ich versuche, wo ich die sysobjects-Tabelle Abfrage, um zu überprüfen, ob ein Objekt existiert, bevor ich es ablegen und neu erstellen. manchmalWarum funktionieren IF EXISTS nicht?
Ausgabe zu sein, wenn ich gehen:
if not exists (select name from sysobjects o where o.name = 'my_table' and o.type = 'U')
CREATE TABLE my_table (..)
go
es funktioniert, keine Sorgen. Als ich jedoch kam es wieder zu laufen, ich diesen schönen Fehler:
SQL Server Error on (myserver) Error:2714 at Line:10 Message:There is already an object named 'my_table' in the database.
Vielen Dank für die, SQL-Programmierer. Ich habe Sie tatsächlich gebeten, diese Tabelle nicht zu erstellen, wenn sie bereits existiert. -_-
Irgendwelche Ideen?
Ich habe beide versucht "Bitte entfernen Sie Ihre vorherige Version, wenn Sie eine, dann diese Version installieren" und "Bitte installieren Sie nur diese Version, wenn Sie keine vorherige haben ". Ich möchte nur ein Skript, das ich immer wieder (zum Testen) laufen kann, ohne etwas auf dem Weg zu brechen (mehr Systemcodes, Systemfehler versuchen, Einschränkungen zu kopieren, etc.) – glasnt
Ihre Logik falsch war. die falls vorhanden sollte fallen nicht erstellt werden. – mson
Das 'Wenn vorhanden' wird zum Löschen verwendet und dann erstellt. Sonst schafft es es einfach. Meine Logik ist nicht falsch. – glasnt