Sql server 如何在SQLServer2005中跨数据库设置触发器?
我有一个“A”数据库和“B”数据库。当我向“A”数据库中的“X表”插入新记录时,我希望使用SQL Server 2005的触发器功能向“B”数据库中的“X2表”插入另一条记录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(... 我不确定它在触发器中是否可行,但在存储
我该怎么做?如何连接另一个数据库并插入特定于记录的表?我不确定在触发器中是否可行,但在存储过程中您可以编写
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
下面是一个完整的工作示例 代码 结果
下面是一个完整的工作示例 代码 结果
和记住检查所有用户对这两个数据库都有足够的访问权限。并且记住检查所有用户对这两个数据库都有足够的访问权限。