INSERT or UPDATE
Версия 6.2 от Alexandr Fokin на 2022/01/03 15:03
Solutions for INSERT OR UPDATE on SQL Server
https://stackoverflow.com/questions/108403/solutions-for-insert-or-update-on-sql-server
DECLARE @key INT = 12
DECLARE @msg NVARCHAR(MAX) = 'L2'
BEGIN TRAN
IF EXISTS (
SELECT *
FROM DBO.LOG2ENTITY WITH (UPDLOCK, SERIALIZABLE)
WHERE ID = @key
)
BEGIN
UPDATE DBO.LOG2ENTITY
SET
Message = @msg
WHERE ID =@key
END
ELSE
BEGIN
INSERT INTO DBO.LOG2ENTITY (Message)
VALUES (@msg)
END
COMMIT TRAN
DECLARE @msg NVARCHAR(MAX) = 'L2'
BEGIN TRAN
IF EXISTS (
SELECT *
FROM DBO.LOG2ENTITY WITH (UPDLOCK, SERIALIZABLE)
WHERE ID = @key
)
BEGIN
UPDATE DBO.LOG2ENTITY
SET
Message = @msg
WHERE ID =@key
END
ELSE
BEGIN
INSERT INTO DBO.LOG2ENTITY (Message)
VALUES (@msg)
END
COMMIT TRAN