SQL Prozedur gibt <NULL> zurück

garcipat

Cadet 1st Year
Registriert
Apr. 2011
Beiträge
15
Hallo miteinander!

Und ich bedanke mich schon im Voraus für eure Unterstützung.

Ich Erarbeite grade eine Applikation mit C# und VS2010 in Kombination mit einer Datenbank.

Nun zum eigentlichen Problem. Meine Prozedur die (in diesem Falle) die neue ID des eingefügten Hausarztes zurückgeben soll, gibt im @result Parameter immer <NULL> zurück.

Hier der Code:
Code:
ALTER PROCEDURE INSERThausarzt 
(
   @name varchar(50),
   @strasse varchar(50),
   @ort varchar(50),
   @telefon varchar(20),
   @result int OUTPUT
)
	
AS
   SET NOCOUNT ON ;
	
   INSERT INTO hausarzt(name,strasse,ort,telefon) 
   VALUES(@name,@strasse,@ort,@telefon);

   SET @result=SCOPE_IDENTITY();
RETURN

Grüsse
garcipat

EDIT: hier noch die zugehörige Tabelle

Code:
CREATE TABLE Hausarzt (
   idHausarzt INT IDENTITY PRIMARY KEY,
   name varchar(50)    NOT NULL,
   strasse varchar(50) NOT NULL,
   ort varchar(50)        NOT NULL,
   telefon varchar(30)  NOT NULL,
);
 
Zuletzt bearbeitet:
Habe keine Ahnung von SQL, aber sollte "@result int OUTPUT" nicht unter der Prozedur stehen, damit es befüllt werden kann?
 
Alle gefundenen Beispiele sind mehr oder weniger analog meiner Version.

Wenn ich den OUTPUT Parameter entferne, funktioniert die Prozedur.
Kann auch RETURN SCOPE_IDENTITY() machen, aber dann kann ichs mit ADO.NET nicht auslesen.
 
Habe noch dieses Beispiel gefunden.

"Use Select keyword instead of Set to set the values.
Also Change the code from "Return" to "Return @result"."
 
wie gesagt, funktioniert schon, kanns so aber nicht mit ADO.NET auslesen.
Ergänzung ()

Das Problem hat sich erledigt. Dummerweise habe ich eine falsche Prozedur aufgerufen und mich dann gewundert dass es Fehler gibt. Aber danke ^^
Die Prozedur ist vollkommen richtig.

kann geclosed werden.
 
Zurück
Oben