我在SQL服务器ASP页存储会话变量与下面的存储过程:什么可能导致主键异常?
CREATE PROCEDURE [dbo].[MyProcedure]
@sessionId varchar(512),
@variable varchar(350),
@value image
AS
BEGIN
BEGIN TRAN
DECLARE @result int = 0;
DECLARE @locked bit;
IF (SELECT COUNT(*) FROM Sessions WHERE id = @sessionId) = 0
BEGIN
SET @result = -1;
END
ELSE BEGIN
DELETE Variables WHERE sessionId = @sessionId AND variable = @variable
IF @value IS NOT NULL
BEGIN
INSERT Variables VALUES(@sessionId, @variable, @value, 0)
END
END
COMMIT TRAN
RETURN @result
END
但是,一旦在一段时间,我得到一个主键异常(消息2627):“PRIMARY KEY约束的冲突‘PK_Variables’ 。不能在对象'dbo.Variables'中插入重复键“。 注意:没有涉及触发器。
谢谢!
我们可以有表格变量的结构吗?您的变量主键是否自动增加? – bAN