Sql 对于插入,在插入后更新not,前面已经问过同样的问题,我们需要而不是插入,更新not,插入后query@adams . . . 谢谢。我们需要而不是INSERT,在上面的INSERT之后更新query@adams . . . 非常感谢。 ALTER TRI
Sql 对于插入,在插入后更新not,前面已经问过同样的问题,我们需要而不是插入,更新not,插入后query@adams . . . 谢谢。我们需要而不是INSERT,在上面的INSERT之后更新query@adams . . . 非常感谢。 ALTER TRI,sql,sql-server,tsql,triggers,Sql,Sql Server,Tsql,Triggers,对于插入,在插入后更新not,前面已经问过同样的问题,我们需要而不是插入,更新not,插入后query@adams . . . 谢谢。我们需要而不是INSERT,在上面的INSERT之后更新query@adams . . . 非常感谢。 ALTER TRIGGER MyTrigger ON persons AFTER INSERT AS IF EXISTS(SELECT * FROM Persons t INNER JOI
对于插入,在插入后更新not
,
前面已经问过同样的问题,我们需要而不是插入,更新
not,
插入后query@adams . . . 谢谢。我们需要而不是INSERT,在上面的INSERT
之后更新query@adams . . . 非常感谢。
ALTER TRIGGER MyTrigger
ON persons
AFTER INSERT
AS
IF EXISTS(SELECT *
FROM Persons t
INNER JOIN inserted i ON i.LastName <> t.LastName
OR i.FirstName <> t.FirstName
OR i.address <> t.address
OR i.City <> t.City
AND i.PersonID = t.PersonID)
BEGIN
UPDATE p
SET p.LastName = i.LastName,
p.FirstName = i.FirstName,
p.address = i.address,
p.City = i.City
FROM persons AS p
INNER JOIN inserted i ON p.PersonID <> i.PersonID
WHERE p.PersonID = i.PersonID
END
CREATE TRIGGER <Trigger Name Here>
ON <Table Name Here>
INSTEAD OF INSERT, UPDATE
AS
INSERT INTO <Table Name Here>
SELECT I.*
FROM INSERTED I INNER JOIN <Table Name Here> T
ON I.ID <> T.ID; --Insert all rows with the ID does not exists in the table
UPDATE T
SET T.FirstName = I.FirstName,
T.LastName = I.LastName,
T.Address = I.Address,
T.City = I.City
FROM INSERTED I INNER JOIN <Table Name Here> T
ON T.ID = I.ID --UPDATE all rows with the same ID already exists in the table
WHERE T.FirstName <> I.FirstName
AND --OR
T.LastName <> I.LastName
AND --OR
T.Address <> I.Address
AND --OR
T.City <> I.City;
ALTER TRIGGER MyTrigger ON persons INSTEAD OF INSERT
AS
BEGIN
-- Insert person ids that are new
INSERT INTO persons
SELECT i.*
FROM inserted i
WHERE NOT EXISTS (SELECT 1
FROM persons p
WHERE i.PersonID = p.PersonID
);
-- update existing person ids
UPDATE p
SET p.LastName = i.LastName,
p.FirstName = i.FirstName,
p.address = i.address,
p.City = i.City
FROM persons p INNER JOIN
inserted i
ON p.PersonID = i.PersonID
WHERE p.LastName <> i.LastName OR
p.FirstName <> i.FirstName OR
p.address <> i.address OR
p.City <> i.City;
END; -- MyTrigger
create stored procedure USP_UpsertPerson
(
@personId
@ other inputsinputs
)
AS
BEGIN
IF( @personId IS NOT NULL)
BEGIN
----------- here Update table script With @personId
END
ELSE
BEGIN
----------- here Insert table script
END
END
GO