我们可以建立T_SQL触发器来改变其他数据库中的表吗?



我正在使用SQL server 2008,我想在我的第一个数据库中创建一个更新后触发器,该触发器更改了另一个数据库中的数据。这能做到吗?如何做到?请帮助我的代码

谢谢

您的数据库是否在同一服务器实例上?如果是这样,那么只需用数据库名称限定引用(例如[database].[schema].[Table])。这似乎工作(我有一个数据库称为Staging和另一个名为Tom):

USE [Staging]
GO
CREATE TABLE [dbo].[Test]
(
    [Name] VARCHAR(50)
)
GO
INSERT [dbo].[Test] VALUES ('START')
GO
USE [Tom]
GO
CREATE TABLE [dbo].[Test]
(
    [Name] VARCHAR(50)
)
GO
INSERT [dbo].[Test] VALUES ('START')
GO
USE [Staging]
GO
CREATE TRIGGER [dbo].[TestTrigger]
ON [dbo].[Test]
AFTER UPDATE
AS
    UPDATE  [Tom].[dbo].[Test] -- Qualified with database name
    SET     [Name] = 'UPDATED FROM [dbo].[TestTrigger]'
GO
UPDATE  [dbo].[Test]
SET     [Name] = 'Testing'
GO
SELECT * FROM [Tom].[dbo].[Test]
GO
DROP TABLE [Staging].[dbo].[Test]
DROP TABLE [Tom].[dbo].[Test]
GO

相关内容

最新更新