Ниже приведен триггер, используемый в одной из наших таблиц SQL для любого действия вставки/обновления. 99/100 раз этот триггер работает просто отлично, однако каждый сейчас и потом мы получаем сообщение об ошибке:Ошибка при вставке данных с помощью триггера T-SQL
Не удается вставить значение NULL в столбец «TransactionDate», таблица «AgentResourcesU01.dbo.TransactionLog»; столбец не допускает нулей.
INSERT не работает. Заявление было прекращено.
Как видно из отчета Вставка столбцов в нашей таблице журнала транзакций являются TransactionDate, Operator, TableName, Action, TableString
и UserId
. Я устанавливаю переменную @transDate
в инструкции SELECT открытия, так, как мне кажется, не должно быть никакого способа получить NULL там, где это происходит, если это не плохие данные.
Любые мысли?
BEGIN
SELECT @symetraNumber = SymetraNumber, @lastChangeOperator = LastChangeOperator, @transDate = LastChangeDate, @entityType = EntityType,
@firstName = FirstName, @lastName = LastName, @suffix = NameSuffix, @corpName = CorporateName, @controlId = ControlId
FROM inserted
IF @firstName IS NULL SET @firstName = 'NULL'
IF @lastName IS NULL SET @lastName = 'NULL'
IF @suffix IS NULL SET @suffix = 'NULL'
IF @corpName IS NULL SET @corpName = 'NULL'
IF @controlId IS NULL SET @controlId = 'NULL'
SET @tableString = 'SymNum:' + @symetraNumber + ' EntType:' + @entityType + ' Fname:' + @firstName + ' Lname:' + @lastname + ' Suff:' + @suffix +
' CorpName:' + @corpName + ' ctrlId:' + @controlId
INSERT INTO TransactionLog (TransactionDate, Operator, TableName, Action, TableString, UserId)
VALUES (@transDate, 'Op', @tableName, @action, @tableString, @lastChangeOperator)
END
Вы подтвердили, что 'LastChangeDate' не является нулевым? – Taryn
Да, мы просто это сделали. – NealR
И каков был результат? – Taryn