Bereitstellen von Stored Procedures/Functions

05/06/2009 - 17:32 von Andreas | Report spam
Hallo,

ich habe eine Reihe von Stored Procedures und Functions geschrieben
(T-SQL). Diese Funktionen sollen jetzt bei den Kunden automatisch über
ein Programm angelegt werden. Alle diese Funktionen liegen als Textdatei
vor.

1. Das Programm verbindet sich via ODBC.
2. Das Programm hat keinen Zugriff auf die Festplatte des Servers.
3. Das Programm sollte sowohl am Server als auch an einem x-beliebigen
Client ausgeführt werden können.

Folgende Versuche habe ich bereits unternommen:

a) Direkt über ODBC - funktioniert nur mit einfachen Funktionen, STP
gehen nicht.

b) Über osql bzw. sqlcmd, welches dann über master..xp_cmdshell
aufgerufen wird - funktioniert schon besser aber immer noch nicht 100%ig.

Mit welchem Utility kann ich dies durchführen lassen?

Herzlichen Dank für Eure Tipps.

Andreas Widmann
 

Lesen sie die antworten

#1 Elmar Boye
05/06/2009 - 20:20 | Warnen spam
Hallo Andreas,

"Andreas" schrieb ...
ich habe eine Reihe von Stored Procedures und Functions geschrieben (T-SQL). Diese Funktionen sollen jetzt bei den Kunden
automatisch über ein Programm angelegt werden. Alle diese Funktionen liegen als Textdatei vor.

1. Das Programm verbindet sich via ODBC.
2. Das Programm hat keinen Zugriff auf die Festplatte des Servers.
3. Das Programm sollte sowohl am Server als auch an einem x-beliebigen Client ausgeführt werden können.

Folgende Versuche habe ich bereits unternommen:

a) Direkt über ODBC - funktioniert nur mit einfachen Funktionen, STP gehen nicht.



Doch, das sollte schon gehen, wenn das verwendete Konto ausreichende
Rechte hat, die Objekte anzulegen.
Beachte, dass Du dabei Stapel trennen muß - ein "GO" kennen
die Treiber nicht, das verstehen nur die Hilfsprogramme.


b) Über osql bzw. sqlcmd, welches dann über master..xp_cmdshell aufgerufen wird - funktioniert schon besser aber immer noch nicht
100%ig.



Damit ist es in der Regel einfacher, nur das dass Programm auf dem
Client vorhanden sein muß. Ein indirekter Aufruf via xp_cmdshell
ist nicht notwendig und xp_cmdshell sollte normalerweise deaktiviert
sein, da es ein Sicherheitsrisiko darstellt.
Je nach Client-Programmiersprache kannst Du Befehle wie Shell(Execute),
.NET Process.Start etc. verwenden, um sqlcmd (ab SQL Server 2005)
oder osql (bis SQL Server 2000) zu starten.
Die grundlegende Kommandozeilen-Syntax ist bei den Programm weitgehend
identisch.

Wenn Du damit Probleme hast, beschreibe sie mal genauer.

Gruß Elmar

Ähnliche fragen