0

我只想获取一次数据。怎么做?例如仅从第一个动作

桌子

myTABLE1
(
NAME,
SURNAME,
USERNAME, 
USERDATE
)

MyTABLE1 的第一个动作

INSERT INTO MyTABLE1 
SELECT NAME, SURNAME FROM MyTABLE2

MyTABLE1 的第二个动作

CREATE TRIGGER example on MyTABLE1 AFTER INSERT
AS
UPDATE    MyTABLE1
SET       USERNAME = 'sysUser1212' and USERDATE = '2004-09-02 00:00:00.000'

我将两行影响到 MyTable3 但我只想得到一次

CREATE TRIGGER example2 on MyTABLE1 FOR INSERT UPDATE DELETE
    AS
    INSERT INTO MyTABLE3
    SELECT NAME, SURNAME, USERNAME, USERDATE
    from inserted
4

1 回答 1

2

改为创建为 INSTEAD OF 触发器。

在进行插入时,您可以在内部将 USERNAME 替换为“sysUser1212”,将 USERDATE 替换为“2004-09-02 00:00:00.000”。

CREATE TRIGGER examplex on MyTABLE1 INSTEAD OF INSERT
AS
INSERT    MyTABLE1 (USERNAME, USERDATE, NAME, SURNAME)
SELECT
    'sysUser1212'
    , '2004-09-02 00:00:00.000'
    , NAME
    , SURNAME
FROM inserted   


-- The following disapear
/*
CREATE TRIGGER example on MyTABLE1 AFTER INSERT
AS
UPDATE    MyTABLE1
SET       USERNAME = 'sysUser1212' and USERDATE = '2004-09-02 00:00:00.000'
--*/
于 2013-05-21T09:25:51.387 回答