正在创建SQL触发器(insert或update),该触发器将从一个表中获取数据并将其放入另一个数据库表中

正在创建SQL触发器(insert或update),该触发器将从一个表中获取数据并将其放入另一个数据库表中,sql,sql-server,tsql,sql-server-2005,tridion,Sql,Sql Server,Tsql,Sql Server 2005,Tridion,我有一个表名为链接,带有字段 [PUBLICATION_ID], [PAGE_ID], [COMPONENT_ID], [COMPONENT_TEMPLATE_ID], [COMPONENT_TEMPLATE_PRIORITY], [COMPONENT_POSITION],[URL] 在数据库Tridion\u代理中 我想在insert/update上创建一个SQL触发器,它将从字段[PUBLICATION\u ID]、[URL]的“Links”表中获取数据,并将其放入不同的数据库(Googl

我有一个表名为
链接
,带有字段

[PUBLICATION_ID],
[PAGE_ID],
[COMPONENT_ID],
[COMPONENT_TEMPLATE_ID],
[COMPONENT_TEMPLATE_PRIORITY],
[COMPONENT_POSITION],[URL]
在数据库
Tridion\u代理中

我想在insert/update上创建一个SQL触发器,它将从字段
[PUBLICATION\u ID]、[URL]
的“Links”表中获取数据,并将其放入不同的数据库(
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 ;

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

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

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


Deployer/Broker扩展是一个受支持的场景,工作得非常好。

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

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

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


Deployer/Broker扩展是一个受支持的场景,工作得非常好。

Miguel提到的扩展示例可以在这里找到:

米格尔提到的扩展示例可以在这里找到:

@OMG我已经添加了尝试过的代码,请建议可以进行哪些更改以获得最佳性能提高,实际上我正在寻找数据库性能。您只需从触发器有权访问的insert表中提取值,然后抓取将其插入到其他表中。您确定这是针对SQL Server的吗?触发器中的语法与我以前见过的不一样。@MikaelEriksson,可能有一些语法错误,因为它是在我发帖时才写的。还没有人指出这一点,所以我会的。这是个坏主意。数据库在数据库系统中是“独立的”——一个数据库可能在其他数据库不可用时可用,或者一对数据库上的恢复操作可能不会使它们“同步”。您应该避免在触发器中执行跨数据库工作。@天哪,我已经添加了已尝试的代码,请建议可以进行哪些更改以获得最佳性能提高,实际上,我在寻找数据库性能。您只需从触发器有权访问的insert表中提取值,然后抓取将其插入到其他表中即可。您确定这是针对SQL Server的吗?触发器中的语法与我以前见过的不一样。@MikaelEriksson,可能有一些语法错误,因为它是在我发帖时才写的。还没有人指出这一点,所以我会的。这是个坏主意。数据库在数据库系统中是“独立的”——一个数据库可能在其他数据库不可用时可用,或者一对数据库上的恢复操作可能不会使它们“同步”。您应该避免在触发器中执行跨数据库工作。任何示例如何实现Deployer/Broker扩展使用?检查JRW在此线程中发送的链接,包含如何创建Deployer扩展的示例任何示例如何实现Deployer/Broker扩展使用?检查JRW在此线程中发送的链接,包含如何创建Deployer扩展的示例