Sql server 如何在SQLServer2005中跨数据库设置触发器?

Sql server 如何在SQLServer2005中跨数据库设置触发器?,sql-server,sql-server-2005,Sql Server,Sql Server 2005,我有一个“A”数据库和“B”数据库。当我向“A”数据库中的“X表”插入新记录时,我希望使用SQL Server 2005的触发器功能向“B”数据库中的“X2表”插入另一条记录 我该怎么做?如何连接另一个数据库并插入特定于记录的表?我不确定在触发器中是否可行,但在存储过程中您可以编写 INSERT INTO DBNAME.SCHEMA.TABLENAME(...) VALUES(... 所以,可能是这样的 INSERT INTO B.dbo.X2(... 我不确定它在触发器中是否可行,但在存储

我有一个“A”数据库和“B”数据库。当我向“A”数据库中的“X表”插入新记录时,我希望使用SQL Server 2005的触发器功能向“B”数据库中的“X2表”插入另一条记录


我该怎么做?如何连接另一个数据库并插入特定于记录的表?

我不确定在触发器中是否可行,但在存储过程中您可以编写

INSERT INTO DBNAME.SCHEMA.TABLENAME(...)
VALUES(...
所以,可能是这样的

INSERT INTO B.dbo.X2(...

我不确定它在触发器中是否可行,但在存储过程中您可以编写它

INSERT INTO DBNAME.SCHEMA.TABLENAME(...)
VALUES(...
所以,可能是这样的

INSERT INTO B.dbo.X2(...

数据库是否在同一sql server实例中?如果是这样,您可以使用…与相邻数据库中的表进行交互。。。如果数据库位于单独的实例中,则必须创建链接服务器并通过该服务器进行访问。

数据库是否位于同一sql Server实例中?如果是这样,您可以使用…与相邻数据库中的表进行交互。。。如果数据库位于单独的实例中,则必须创建一个链接服务器并通过该服务器进行访问。

唯一的问题是限定新数据库的名称。否则,它就像一个触发器写入同一个数据库。下面是T-SQL部分的一个示例:

INSERT INTO b.dbo.X2
SELECT * FROM Inserted

您将遇到的唯一问题是限定新数据库的名称。否则,它就像一个触发器写入同一个数据库。下面是T-SQL部分的一个示例:

INSERT INTO b.dbo.X2
SELECT * FROM Inserted

下面是一个完整的工作示例

代码 结果
下面是一个完整的工作示例

代码 结果
和记住检查所有用户对这两个数据库都有足够的访问权限。并且记住检查所有用户对这两个数据库都有足够的访问权限。