SQL Server после вставки триггера не копирует все строки - PullRequest
0 голосов
/ 20 июля 2011

У меня есть две таблицы в одной БД на 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

1 Ответ

0 голосов
/ 20 июля 2011

Это почти наверняка не имеет ничего общего с "очень быстрым добавлением". Я думаю, что строки, которые вы вставляете, не всегда соединяются с tEmploye. Попробуйте сделать его внешним соединением (если это возможно) и посмотрите, есть ли у вас эти так называемые пропущенные строки, или если в вашем столбце C_Logon в table2 вы получаете значение null (я должен сказать, что это нечетные имена для таблиц - такое запутывание делает вычисление возможное решение сложнее)

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