创建SQL触发器(插入或更新),它将从一个表中获取数据并将其放入另一个数据库表

Man*_*ngh 1 sql t-sql sql-server sql-server-2005 tridion

我有一个Links带有字段名称的表

[PUBLICATION_ID],
[PAGE_ID],
[COMPONENT_ID],
[COMPONENT_TEMPLATE_ID],
[COMPONENT_TEMPLATE_PRIORITY],
[COMPONENT_POSITION],[URL]
Run Code Online (Sandbox Code Playgroud)

在数据库中 Tridion_Broker

我想在插入/更新时创建一个SQL触发器,它将从"链接"表中获取字段中的数据[PUBLICATION_ID], [URL]并将其放入不同的数据库(GoogleLinks)和表中MyLinks.

编辑:
我的实施如下:

DROP TRIGGER IF EXISTS Update_Google_List;
DELIMITER $$
CREATE TRIGGER Update_Google_List AFTER INSERT , UPDATE 
    ON Tridion_Broker.dbo.Links
FOR EACH ROW 
BEGIN
INSERT INTO GoogleLinks.dbo.MyLinks (PUBLICATION_ID, URL)
SELECT DISTINCT PUBLICATION_ID as n,URL as u 
FROM Tridion_Broker.dbo.Links
WHERE Page_ID =@PageID 
AND Component_Template_Priority >0 
AND PUBLICATION_ID NOT IN(232,481) 
AND NOT EXISTS (SELECT 1 
FROM MyLinks as g 
WHERE g.PUBLICATION_ID = Links.PUBLICATION_ID
)
ORDER BY PUBLICATION_ID
END$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

Mig*_*uel 5

据我所知,创建数据库项,修改数据库模型等等使支持合同无效.

我建议您在继续这种方法之前仔细检查.

您可以使用Deployer/Broker扩展来实现相同的方案.在这种情况下,您可以在不触及数据模型的情况下将链接信息写入不同的表中.

Deployer/Broker扩展是一个受支持的场景,并且运行良好.