ALTER TRIGGER [dbo].[TR_O_SALESMAN_INS]
ON [dbo].[O_SALESMAN]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
DECLARE @SLSMAN_CD NVARCHAR(20)
DECLARE @SLSMAN_NAME NVARCHAR(20)
SELECT @SLSMAN_CD = SLSMAN_CD,@SLSMAN_NAME=SLSMAN_NAME
FROM INSERTED
IF NOT EXISTS(SELECT * FROM O_SALESMAN_USER WHERE SLSMAN_CD = @SLSMAN_CD)
BEGIN
INSERT INTO O_SALESMAN_USER(SLSMAN_CD, PASSWORD, USER_CD)
VALUES(@SLSMAN_CD, @SLSMAN_CD,@SLSMAN_NAME)
END
END
Это триггер написано для table(O_SALESMAN)
, чтобы принести несколько столбцов из него и вставить его друг в друге table(O_SALESMAN_USER)
. В настоящее время объемные данные вставляются в таблицу O_SALESMAN
через хранимую процедуру, где, когда триггер запускается только один раз, а O_SALESMAN_USER
имеет только одну запись, вставленную каждый раз, когда выполняется хранимая процедура, я хочу, чтобы триггер запускался после каждого запись, которая вставлена в O_SALESMAN
, так что обе таблицы должны иметь одинаковый счет, который не происходит. Пожалуйста, дайте мне знать, что можно изменить в этом триггере, чтобы достичь того же ....Обжиг триггера для сыпучей вставка
может быть стоит ваше разъяснение значит ли BULK INSERT (HTTP: //msdn.mic rosoft.com/en-us/library/ms188365.aspx), где вам необходимо включить FIRE_TRIGGERS или просто многострочный INSERT (http://msdn.microsoft.com/en-us/library/ms174335.aspx) –