1

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

[PUBLICATION_ID],
[PAGE_ID],
[COMPONENT_ID],
[COMPONENT_TEMPLATE_ID],
[COMPONENT_TEMPLATE_PRIORITY],
[COMPONENT_POSITION],[URL]

在数据库中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 ;
4

2 回答 2

5

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

我建议您在继续使用此方法之前仔细检查。

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

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

于 2012-04-26T13:28:13.543 回答
2

可以在此处找到 Miguel 提到的扩展示例: https ://www.sdltridionworld.com/articles/sdltridion2011/tutorials/Deployer_Extensions_With_Eclipse_1.aspx

于 2012-04-30T21:19:36.313 回答