以下是我們的某個SQL表中用於任何插入/更新操作的觸發器。 99/100倍這個觸發但是每一個現在工作得很好,然後我們收到此錯誤信息:嘗試使用觸發器插入數據時出錯T-SQL
無法將NULL值插入列「TransactionDate」,表 「AgentResourcesU01.dbo.TransactionLog」;列不允許有空值。
INSERT失敗。該語句已終止。
你可以從INSERT語句看到,在我們的事務日誌表中的列TransactionDate, Operator, TableName, Action, TableString
和UserId
。我在開始的SELECT語句中設置變量@transDate
,因此對我而言,應該沒有辦法讓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'不爲null? – Taryn
是的,我們只是做到了。 – NealR
結果是什麼? – Taryn