Thanks. I'm trying my first table trigger for sql2005, can't seem to get it right? I'm getting incorrect syntax near keyword "then" line 10, line 12 incorrect syntax near SurveyID, and line 33 db2_RDT.dbo.SurveyMember.SurveyID is not permitted in this context...column names are not permitted.
I have 2 db in the same server, db2_rdt needs to update the same table with the same columns/types as db1
This is what i have written, hope it post correctly.. Thanks
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER updateSurveyMember
ON [db2_RDT].[dbo].[SurveyMember]
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
SET NOCOUNT ON;
if UPDATE then
UPDATE [db1].[dbo].[SurveyMember]
SET [db1].[dbo].[SurveyMember]SurveyID = [db2_RDT].[dbo].[SurveyMember].SurveyID
, [db1].[dbo].[SurveyMember]MemberID = [db2_RDT].[dbo].[SurveyMember].MemberID
, [db1].[dbo].[SurveyMember]AcceptedTOUOn = [db2_RDT].[dbo].[SurveyMember].AcceptedTOUOn
, [db1].[dbo].[SurveyMember]Started = [db2_RDT].[dbo].[SurveyMember].Started
, [db1].[dbo].[SurveyMember]StartedOn = [db2_RDT].[dbo].[SurveyMember].StartedOn
, [db1].[dbo].[SurveyMember]Completed = [db2_RDT].[dbo].[SurveyMember].Completed
, [db1].[dbo].[SurveyMember]Referred = [db2_RDT].[dbo].[SurveyMember].Referred
, [db1].[dbo].[SurveyMember]BroadcastID = [db2_RDT].[dbo].[SurveyMember].BroadcastID
end if
if INSERT then
INSERT INTO [db1].[dbo].[SurveyMember]
(SurveyID
, MemberID
, AcceptedTOUOn
, Started
, StartedOn
, Completed
, Referred
, BroadcastID)
VALUES( [db2_RDT].[dbo].[SurveyMember].SurveyID
, [db2_RDT].[dbo].[SurveyMember].MemberID
, [db2_RDT].[dbo].[SurveyMember].AcceptedTOUOn
, [db2_RDT].[dbo].[SurveyMember].Started
, [db2_RDT].[dbo].[SurveyMember].StartedOn
, [db2_RDT].[dbo].[SurveyMember].Completed
, [db2_RDT].[dbo].[SurveyMember].Referred
, [db2_RDT].[dbo].[SurveyMember].BroadcastID);
end if
if DELETE then
DELETE FROM [db1].[dbo].[SurveyMember]
WHERE [db1].[dbo].[SurveyMember].SurveyID = [db2_RDT].[dbo].[SurveyMember].SurveyID, [db1].[dbo].[SurveyMember].MemberID = [db2_RDT].[dbo].[SurveyMember].MemberID, [db1].[dbo].[SurveyMember].BroadcastID = [db2_RDT].[dbo].[SurveyMember].BroadcastID
end if
END
GO
I have 2 db in the same server, db2_rdt needs to update the same table with the same columns/types as db1
This is what i have written, hope it post correctly.. Thanks
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER updateSurveyMember
ON [db2_RDT].[dbo].[SurveyMember]
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
SET NOCOUNT ON;
if UPDATE then
UPDATE [db1].[dbo].[SurveyMember]
SET [db1].[dbo].[SurveyMember]SurveyID = [db2_RDT].[dbo].[SurveyMember].SurveyID
, [db1].[dbo].[SurveyMember]MemberID = [db2_RDT].[dbo].[SurveyMember].MemberID
, [db1].[dbo].[SurveyMember]AcceptedTOUOn = [db2_RDT].[dbo].[SurveyMember].AcceptedTOUOn
, [db1].[dbo].[SurveyMember]Started = [db2_RDT].[dbo].[SurveyMember].Started
, [db1].[dbo].[SurveyMember]StartedOn = [db2_RDT].[dbo].[SurveyMember].StartedOn
, [db1].[dbo].[SurveyMember]Completed = [db2_RDT].[dbo].[SurveyMember].Completed
, [db1].[dbo].[SurveyMember]Referred = [db2_RDT].[dbo].[SurveyMember].Referred
, [db1].[dbo].[SurveyMember]BroadcastID = [db2_RDT].[dbo].[SurveyMember].BroadcastID
end if
if INSERT then
INSERT INTO [db1].[dbo].[SurveyMember]
(SurveyID
, MemberID
, AcceptedTOUOn
, Started
, StartedOn
, Completed
, Referred
, BroadcastID)
VALUES( [db2_RDT].[dbo].[SurveyMember].SurveyID
, [db2_RDT].[dbo].[SurveyMember].MemberID
, [db2_RDT].[dbo].[SurveyMember].AcceptedTOUOn
, [db2_RDT].[dbo].[SurveyMember].Started
, [db2_RDT].[dbo].[SurveyMember].StartedOn
, [db2_RDT].[dbo].[SurveyMember].Completed
, [db2_RDT].[dbo].[SurveyMember].Referred
, [db2_RDT].[dbo].[SurveyMember].BroadcastID);
end if
if DELETE then
DELETE FROM [db1].[dbo].[SurveyMember]
WHERE [db1].[dbo].[SurveyMember].SurveyID = [db2_RDT].[dbo].[SurveyMember].SurveyID, [db1].[dbo].[SurveyMember].MemberID = [db2_RDT].[dbo].[SurveyMember].MemberID, [db1].[dbo].[SurveyMember].BroadcastID = [db2_RDT].[dbo].[SurveyMember].BroadcastID
end if
END
GO