Retur værdi fra SQL 2000 SP
Jeg har følgende proc...CREATE PROCEDURE sp_AddArtToTrack
@TrackId int,
@ArtId int
AS
SET NOCOUNT ON
BEGIN
SELECT AT.[Id] FROM ArtTrack AT WHERE AT.TrackId = @TrackId AND AT.ArtId = @ArtId
IF @@ROWCOUNT < 1
BEGIN
INSERT INTO ArtTrack ( TrackId, ArtId ) VALUES ( @TrackId, @ArtId ) SELECT @@IDENTITY
END
END
GO
Hvordan for jeg den til at returnere @@Identity, såfremt det er ikke findes nogle post i query'en ?
Jeg benytter følgende C# kode....
SqlConnection Conn = new SqlConnection(connStr);
SqlCommand Cmd = new SqlCommand("sp_AddArtTrack", Conn);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.Add("@ArtId",SqlDbType.Int).Value = art.Id;
Cmd.Parameters.Add("@TrackId",SqlDbType.Int).Value = track.Id;
Conn.Open();
int Index = Convert.ToInt32(Cmd.ExecuteScalar());
Conn.Close();
Såfremt der findes en post i query'en, returneres den, og den læses ligeledes af ExecuteScalar().
Såfremt der ikke findes en post, og der dermed bliver oprettet en post, fanger ExecuteScalar() ikke @@Identity
Hvad gør jeg forkert ?
Thanx!
