链接服务器中的触发器不起作用

时间:2017-08-02 14:02:15

标签: sql sql-server database sql-server-2005

我正在尝试将server1中的一个表中的相同值插入到server2中。我有两个服务器,其中一个使用Windows Server 2012和SQL 2012,另一个使用Windows Server 2003和SQL 2005,在我的server1(Server 2012)中,我使用一个名为“usuario”的表创建了一个数据库名称“test” server2(Server 2003)我创建了一个名为“test”的数据库,其中一个名为“user”的表包含以下列:id,name,lastname,email,phone和marital status;在server2中我有相同的数据库具有相同的值。

所以我决定,首先,创建一个服务器到其他服务器的链接服务器,一切都好,但如果我想在两个服务器中插入相同的值,我的触发器不起作用。我在两个服务器中配置:防火墙Windows端口1433和135到TCP / IP和UDP连接,SQL客户端网络工具,SQL服务和分布式事务协调器服务正在Windows服务组件中运行和配置,以启用和接受事务而无需身份验证来自链接服务器的属性在两台服务器上都可以。一切看起来都不错但是当我插入一些东西时,咨询需要超过5分钟并且仍在处理中。

有人可以帮帮我吗?当我从一个服务器向另一个服务器咨询查询时,另一个细节给我带来了结果,无论服务器如何都可以。我的触发器如下:

USE [test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER [dbo].[insertUser] ON  [test].[dbo].[user] AFTER INSERT AS 

DECLARE @id int

DECLARE @name varchar(50)

DECLARE @lastname varchar(50)

DECLARE @email varchar(50)

DECLARE @phone int

DECLARE @maritalstatus varchar(50)

SELECT @id=i.id FROM inserted i;

SELECT @name=i.id FROM inserted i;

SELECT @lastname=i.id FROM inserted i;

SELECT @mail=i.id FROM inserted i;

SELECT @phone=i.id FROM inserted i;

SELECT @maritalstatus=i.id FROM inserted i;

INSERT [192.168.11.128].[test].[dbo].[user] SELECT * FROM inserted
GO

我的插页看起来像:

USE [test]

GO

INSERT INTO [dbo].[user]([id],[name],[lastname],[email],[phone],[maritalstatus])VALUES(1503,'paul','armstrong','something@something',505301,'engaged')

GO

我不知道我做错了什么。另一个评论,我做同样的触发器,但有两个服务器同时使用Windows Server 2003和SQL 2005,在这种情况下插入和触发它是成功的。可能是SQL版本与兼容性有关吗?

0 个答案:

没有答案