我的ASP页面使用以下存储过程将会话变量存储在SQL Server中:
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
但偶尔会出现主键异常(Msg 2627):“违反 PRIMARY KEY 约束条件 'PK_Variables'。无法将重复键插入对象 'dbo.Variables'。” 注意:没有涉及触发器。
谢谢!