Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Stored Procedures einfach erstellt

Geschrieben von: Christoph Wille
Kategorie: Datenbank

This printed page brought to you by AlphaSierraPapa

Stored Procedures bieten sich als Schnittstelle zwischen Applikation und SQL Server Datenbank geradezu an, da man der Applikation nur Rechte auf die Stored Procedures geben muß, und einen Direktzugriff auf Tabellen somit verhindern kann. Außerdem ist es möglich, erweiterte Überprüfungslogik in die Stored Procedure einzubauen - bevor ein INSERT, UPDATE oder DELETE ausgeführt wird. Warum werden SP's dann so selten eingesetzt? Weil viele Leute glauben, daß es mit viel Arbeit verbunden ist. Stimmt aber nicht.

Dieser Irrglaube kommt daher, daß eine Stored Procedure (SP), auf den ersten Blick kompliziert zu programmieren scheint:

CREATE PROCEDURE insert_Categories
	(@CategoryID  [int],
	 @CategoryName  [nvarchar](15),
	 @Description  [ntext],
	 @Picture  [image])

AS INSERT INTO Categories 
	 ( [CategoryID],
	 [CategoryName],
	 [Description],
	 [Picture]) 
 
VALUES 
	(@CategoryID,
	 @CategoryName,
	 @Description,
	 @Picture)
GO

Das ist eine einfache SP für das Einfügen von einem Datensatz in die Categories Tabelle in der Northwind Datenbank. Wenn man das jetzt für alle Tabellen machen muß, und dann noch dazu für UPDATE und DELETE auch noch, dann sieht das nach viel Arbeit aus - auf den ersten Blick.

Der Trick zur Arbeitsumgehung liegt im SQL Server Enterprise Manager:

Und zwar sehr versteckt unter dem Punkt Tools/Wizards:

Hier verstecken sich viele Wizards, die nicht über Kontextmenü oder andere Befehlssequenzen erreichbar sind, aber dennoch die tägliche Arbeit sehr erleichtern können, wie auch der Create Stored Procedure Wizard:

Damit kann man sich Stored Procedures erstellen lassen. Sehen wir uns das Schritt für Schritt an, wobei der erste Screen des Wizards ein Willkommensscreen ist und somit unwichtig. Auf dem zweiten Screen geht es um die Datenbankauswahl:

Aus dieser holt der Wizard dann eine Liste von Tabellen und Views, auf die man INSERT, UPDATE und DELETE Stored Procedures anlegen kann.

Ich habe die Categories Tabelle gewählt, und alle drei SP-Typen angewählt. Damit zeigt mir der Wizard dann folgenden Screen:

Theoretisch wäre man nun fertig, jedoch gefallen mir die Namen der SP's noch nicht, deshalb wähle ich den Edit Button:

Hier kann man nun den Namen der SP ändern, und auch Spalten abwählen, die man nicht einfügen will (zB Autowert Spalten und dergleichen). Will man noch mehr Kontrolle, kann man auch im Wizard gleich in das SQL eingreifen:

Jedoch würde ich das Editieren eher nach der Generierung empfehlen, über die Eigenschaften der erzeugten SP:

Weil hier kann man auch gleich mitdefinieren, welche User welche Rechte auf der Stored Procedure haben sollen:

Für SELECT Abfragen muß man die Stored Procedure übrigens noch von Hand erstellen, aber da meist parameterlos, sollte die SELECT SP keine großen Probleme aufwerfen - die arbeitsintensiven SP's werden durch den Wizard automatisch generiert.

Schlußbemerkung

Diese Tour durch den Create Stored Procedure Wizard hat neben der durch den Wizard gebotenen Funktionalität einen weiteren Aspekt: viele interessante Features schlummern meist im verborgenen, dort, wo man selten oder nie solche nützlichen Hilfsmittel erwarten würde.

This printed page brought to you by AlphaSierraPapa

Verwandte Artikel

Aktualisieren von Daten mit dem UPDATE Statement
http:/www.aspheute.com/artikel/20001124.htm
Auto-Generierung von performantem Abfragecode
http:/www.aspheute.com/artikel/20010329.htm
Code Generator für die AddNew Methode
http:/www.aspheute.com/artikel/20010327.htm
Das SQL Join Statement
http:/www.aspheute.com/artikel/20001023.htm
Datensätze mit dem DELETE Statement löschen
http:/www.aspheute.com/artikel/20001127.htm
Der ADO Command Code Generator
http:/www.aspheute.com/artikel/20010308.htm
Der SQL UNION Operator
http:/www.aspheute.com/artikel/20011015.htm
Die SQL ORDER BY Clause
http:/www.aspheute.com/artikel/20001201.htm
Ein einfacher Query Analyzer
http:/www.aspheute.com/artikel/20010420.htm
Einfügen eines Datensatzes mit dem INSERT Statement
http:/www.aspheute.com/artikel/20001107.htm
Highspeed-Abfragen einer SQL Server Datenbank
http:/www.aspheute.com/artikel/20001013.htm
Query Express für MSDE
http:/www.aspheute.com/artikel/20020322.htm
SQL Injection
http:/www.aspheute.com/artikel/20011030.htm
SQL Server Objekte scripten
http:/www.aspheute.com/artikel/20001108.htm
T-SQL Clauses: GROUP BY und HAVING
http:/www.aspheute.com/artikel/20011017.htm

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.