Oracle Oracle "erstellen oder ersetzen" Anweisungen. Sql-Server scheint nicht - wenn Sie aus Enterprise Manager scripten, schlägt stattdessen stattdessen "drop and create" vor. Das Löschen und Erstellen ist in jeder Situation, in der Sie Grants für die gespeicherte Prozedur ausgeführt haben, unerwünscht, weil dadurch die von Ihrem Datenbankadministrationsteam gewährten Grants verloren gehen. Sie müssen wirklich "create or replace" erstellen, um bei der Trennung von Conerns zwischen Entwicklern und Administratoren zu helfen.erstellen Sie gespeicherte Prozedur, wenn nicht in SQL-Server
Was ich habe vor kurzem getan, ist dies:
use [myDatabase]
go
create procedure myProcedure as
begin
print 'placeholder'
end
go
alter procedure myProcedure as
begin
-- real sproc code here
end
go
Das tut, was ich will. Wenn die Prozedur nicht existiert, erstellen Sie sie und ändern Sie dann den richtigen Code. Wenn die Prozedur vorhanden ist, schlägt die Erstellung fehl, und die Änderer aktualisiert den Code mit dem neuen Code.
Es erstellt ein anderes Problem für die Administratoren, da das Erstellen einen irreführenden Fehler verursacht, wenn die gespeicherte Prozedur bereits vorhanden ist. Irreführend natürlich, dass Sie keinen roten Fehlertext sehen sollten, wenn das gewünschte Ergebnis eingetreten ist.
Hat jemand eine Möglichkeit, den roten Text zu unterdrücken? Alles, was ich versucht habe, führt zu einem "CREATE/ALTER PROCEDURE muss die erste Anweisung in einem Abfrage Batch" Fehler auf die eine oder andere Weise sein.
Mögliches Duplikat [? Was tun Sie in SQL Server zu erstellen oder ändern] (http://stackoverflow.com/questions/1434160/what-do-you-do-in-sql -server-to-create-or-alter) – ruffin
Ich werde darauf hinweisen, dass wenn Sie die Berechtigungen als Teil Ihres Procs Skript dann gibt es kein Problem in Drop und Create.Wenn Sie spezielle Berechtigung für einen Proc haben, dann ist es sollte Teil des Skripts sein, das im Quellcode-Repository gespeichert ist. Dann, wenn Sie gehen, um eine Änderung vorzunehmen, gibt es dort bereits Erlaubnis. – HLGEM