我有一个存储过程
@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”。获取“mesaj”的第一个插入ID并将其用作第二条记录的chat_id。所以录制两次。(mesaj 表示土耳其语中的消息 :))。我尝试使用 @@IDENTITY 而不是 SCOPE_IDENTITY 但没有任何改变。我尝试使用 IDENT_CURRENT(chat) 但返回错误“无效的列名'聊天'。”
我怎么解决这个问题 ?