Quantcast
Channel: Für Entwickler: SQL Server Forum
Viewing all articles
Browse latest Browse all 1772

Tabelleneinträge fehlen

$
0
0

Hallo Gemeinde,

ich hab hier ein Problem, das mir graue Haare macht.

Ich habe eine Stored Procedure, die einen Insert in eine Tabelle (SITZUNG) macht.
Bei diesem Insert wird via dafault value newid() ein uniqueidentifier erzeugt.
Dieser wird von der SP zurückgegeben.


Das funktioniert auch wunderbar wenn ich es im Management Studio teste.
Sobald ich die SP von einem C# oder Webprojekt aufrufe passiert folgendes:

Der uniqueidentifier  wird korrekt zurückgegeben und es tritt kein Fehler auf.
Wenn ich aber die Tabelle SITZUNG anschaue, ist der Eintrag nicht vorhanden.
Er verschwindet einfach. Mit Debugmeldungen sehe ich, das der Tabelleneintrag
bis zum Ende der SP vorhanden ist. Danach ist er weg.
Da keine Transaktion gestartet wurde kann es auch nicht an einem Rollback liegen.

Wenn ich danach via Management Studio wieder einen Datensatz einfüge sehe ich
auch das die PKs (Autowert) der verschwundenen varbraucht sind, also darauf folgende
PKs erzeugt werden. Ich habe schon einige solche Prozeduren in verwendung aber noch
nie ein solchen Phänomen gesehen.

Die SP

ALTER PROCEDURE [dbo].[spLogin] 
	@SCHNITTSTELLE INT,
	@LOGIN         VARCHAR(50),
	@SITZUNG			UNIQUEIDENTIFIER OUTPUT,
	@MANDAT        INT OUTPUT

AS
BEGIN
	
	DECLARE 
		@id			INT,
		@benutzer	INT
				
	BEGIN TRY
		
		EXEC spGetMandat @SCHNITTSTELLE, @LOGIN, @benutzer OUTPUT, @MANDAT OUTPUT

		IF(@MANDAT > 0)
		BEGIN

			INSERT INTO [dbo].[SITZUNG] 
							([BENUTZER], [SCHNITTSTELLE], [MANDAT])
					VALUES (@benutzer, @SCHNITTSTELLE, @MANDAT)
		
			SET @id = @@IDENTITY
		
			SELECT @SITZUNG = [SITZUNG] 
				FROM [dbo].[SITZUNG] 
				WHERE [ID] = @id			

		END
		ELSE
		BEGIN
			SET @SITZUNG = NULL			  		
		END
																	
	END TRY
	 
	BEGIN CATCH
		THROW;
		RETURN;
	END CATCH

END


Viewing all articles
Browse latest Browse all 1772

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>