Wenn du den Code zum Erstellen der Stored Procedure aus Delphi absetzt, dann solltest du vorder prüfen ob diese eventuell schon in der
DB existiert.
Das geht so ...
SQL-Code:
IF EXISTS (
SELECT Name
FROM SysObjects
WHERE Name = '
Meine_SP'
AND
TYPE = '
P')
-- P = Stored Procedure ...
BEGIN
ALTER PROCEDURE ...
-- Procedure in DB aktualisieren
END
ELSE BEGIN
CREATE PROCEDURE ...
-- Procedure in DB erstellen
END
Den
SQL Code kannst du bequem über TAdoCommand an den
MSSQL schicken.
Zu beachten ist jedoch, das der User, der diesen Code aus deinem Programm an den
SQL-Server sendet, das Recht zum Erstellen, Ändern und Löschen von Datenbankobjekten hat. Jeder darf das nicht ...
[Zusatz]
Hier noch eine komplette Liste der TYPE Kennungen in SYSOBJECTTS ...
Falls mal jemand einen anderen Objekttyp suchen möchte ...
Objekttyp. Kann einer der folgenden Objekttypen sein:
C = CHECK-Einschränkung
D = Standard- oder DEFAULT-Einschränkung
F = FOREIGN KEY-Einschränkung
L = Protokoll
FN = Skalarfunktion
IF = Inlinetabellenfunktion
P = Gespeicherte Prozedur
PK = PRIMARY KEY-Einschränkung (Typ ist K)
RF = Gespeicherte Replikationsfilterprozedur
S = Systemtabelle
TF = Tabellenfunktion
TR = Trigger
U = Benutzertabelle
UQ = UNIQUE-Einschränkung (Typ ist K)
V = Sicht
X = Erweiterte gespeicherte Prozedur
[/Zusatz]