Hallo!

> Wie gehe ich denn am besten in einer Stored Procedure vor, 
> wenn ich einfach 
> nur testen m�chte, ob zu einem angegebenen Parameter ein Datensatz 

SELECT 1 WHERE EXISTS (SELECT ...)

"EXISTS" gibt keine Datens�tze zur�ck, sondern pr�ft lediglich, ob es
Datens�tze gibt.

> vorhanden ist oder nicht? In ADO.NET kann man das doch 
> mit  SqlCommand.ExecuteScalar erreichen. wie aber mit Transact SQL?
> W�re doch unn�tige Performanceverschwendung, die Datens�tze komplett 
> auszulesen..

Mit T-SQL steuerst Du, wieviele Datens�tze gelesen werden. Mit ADO bzw.
ADO.NET steuerst Du lediglich, wie das Ergebnis (Resultset) aufbereitet
wird. Damit nicht immer ein komplexes RecordSet (ADO) oder DataSet (ADO.NET)
erzeugt wird, gibt es in ADO.NET jetzt die Methode .ExecuteScalar(). Aber
auch mit ADO braucht man nicht immer ein RecordSet als Ergebnis: Da ruft man
das Command-Objekt mit den Optionen "adCmdStoredProc" und
"adExecuteNoRecords" auf und gibt einen oder mehrere Skalare �ber die
Parameter zur�ck. Das geht mit ADO.NET nat�rlich so auch noch.
.ExecuteScalar() ist jedoch n�tzlich, wenn man tats�chlich nur genau 1 Wert
ben�tigt und Angst vor Stored Procedures hat. In dem Fall nimmt man eine
beliebigen Select-Befehl und am peformantesten einen nach obigem Muster. 

Freundliche Gr��e
Joachim van de Bruck

_______________________________________________
Database.asp mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/database.asp

Antwort per Email an