我在SQL Server 2008上的同一个数据库中有两个表。当我向第一个数据库插入一行时,我希望将一些字段复制到第二个字段。我做了一个触发器,但问题是,有时当我非常快地添加2行时,它只复制其中一行。
我的代码出了什么问题?
USE [DB_NAME]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[triggerName]
ON [dbo].[table1]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO dbo.table2(L_UID, L_Mode, C_Name, C_Logon)
SELECT ins.L_UID, ins.L_Mode, ins.C_Name, temp.C_Remark AS Logon FROM INSERTED AS ins
INNER JOIN dbo.tEmploye AS temp
ON (temp.L_UID = ins.L_UID)
WHERE temp.C_Remark IS NOT NULL
END
答案 0 :(得分:0)
它几乎肯定与“加速非常快”无关。我最好的猜测是你插入的行并不总是与tEmploye连接。尝试使它成为一个外连接(如果可能的话),看看你是否继续拥有这些所谓的缺失行,或者如果你在table2中的C_Logon列中得到null(表格的奇怪名称,我必须说 - 这样的混淆使得计算找出一个可能的解决方案更加困难)