私はストアドプロシージャを持っています
@user1 uniqueidentifier ,
@user2 uniqueidentifier ,
@mesaj_text varchar(500),
@mesaj_read int
AS
BEGIN
declare @chat_id int
IF EXISTS (SELECT chat_id FROM chat where user1=@user1 and user2 =@user2 or user1=@user2 and user2 =@user1)
BEGIN SELECT @chat_id =chat_id FROM chat where user1=@user1 and user2 =@user2 or user1=@user2 and user2 =@user1
INSERT INTO mesaj values (@chat_id,@user1,@mesaj_text,getdate(),@mesaj_read) END
ELSE insert into chat values (@user1,@user2)
SET @chat_id=SCOPE_IDENTITY()
insert into mesaj values (@chat_id,@user1,@mesaj_text,getdate(),@mesaj_read)
全て大丈夫。
しかし、「mesaj」を 2 回記録しています。最初に挿入された「mesaj」の ID を取得し、それを 2 番目の記録の chat_id として使用しています。(mesaj はトルコ語でメッセージを意味します :) ) .SCOPE_IDENTITY の代わりに @@IDENTITY を使用しようとしましたが、何も変わりませんでした。
この問題を解決するにはどうすればよいですか?