SQL服务器删除后插入触发错误

SQL Server insert after delete Trigger error

当从原始 table 中删除一行时,我试图将一行插入到新的 table 中,但是当我 运行 删除时,我一直收到以下错误记录在案。

我阅读了错误消息的详细信息,它说它与无法插入的数据类型有关,但我不明白这一点,因为我复制了确切的 table 结构,它已从中删除并被插入到.

Msg 8152, Level 16, State 13, Procedure DeleteEmpTR, Line 5 String or binary data would be truncated. The statement has been terminated.

SELECT * INTO dbo.DeletedEmp
FROM Original.Employees
WHERE 1=2;

CREATE TRIGGER dbo.DeleteEmpTR ON dbo.Employees
AFTER DELETE
AS

INSERT INTO dbo.DeletedEmp
SELECT d.col1, d.col2, ...
FROM deleted d
WHERE empid not in (SELECT empid FROM inserted);

/*
--tests
DELETE FROM dbo.Employees
WHERE empid = 9
SELECT * FROM dbo.DeletedEmp; 
*/
  • 您应该检查 table 的 EmployeesDeletedEmp 列是否具有相同的列数据类型。 (数据定义)
  • 检查 char and varchar 的所有列是否具有相同的长度。 Char(n)VarChar(n),其中 n 是字符串的长度。

错误 String or binary data would be truncated 通常是当要插入的字符串的长度比目标的 table 列可以容纳 时。