Транзакция не работает в SQL Server 2017 - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть транзакция, чтобы проверить, имеет ли запись в моей таблице ту же дату и subHistoryID.Независимо от того, совпадают данные или нет, транзакция всегда откатывается.Любая помощь по этому вопросу была бы отличной.

BEGIN TRANSACTION [Tran1]
    INSERT INTO History(Name, subHistoryID, GarageID, StaffID, Date, Notes)
    VALUES (@name, @subhistoryid, @garageid, @staffid, @date, @notes);

    IF EXISTS (SELECT * FROM History 
               WHERE History.Date = @date AND History.subHistoryID = @subhistoryid) 
    BEGIN
        ROLLBACK TRANSACTION [Tran1]
        PRINT 'ERROR: Rolling back transaction.'
    END
    ELSE
    BEGIN
        PRINT 'PASS: Committing transaction.'
        COMMIT TRANSACTION [Tran1]
    END
GO

Мои данные перед попыткой транзакции.

DECLARE @name varchar(20) = NULL;
DECLARE @subhistoryid int = 1;
DECLARE @garageid int = 1;
DECLARE @staffid int = 1;
DECLARE @date Date = '2018-10-21';
DECLARE @notes varchar(100) = 'test'; 

Эти данные должны откатиться, что делает.

DECLARE @name varchar(20) = NULL;
DECLARE @subhistoryid int = 1;
DECLARE @garageid int = 1;
DECLARE @staffid int = 1;
DECLARE @date Date = '2016-1-1';
DECLARE @notes varchar(100) = 'test'; 

Эти данные должны зафиксироваться, но они откатываются

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...