谁能解决?分布式的问题(触发器)
--1:建立链接服务器
EXEC sp_addlinkedserver
'DB1',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=SA;'
GO
--SET XACT_ABORT ON
--2:授权访问
EXEC sp_addlinkedsrvlogin 'DB1','false'
GO
--3:创建触发器
-----------------------------------------------------------------------------------
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'TR_TEST'
AND type = 'TR')
DROP TRIGGER TR_TEST
GO
CREATE TRIGGER TR_TEST
ON TABLE1
FOR INSERT
AS
BEGIN
select * from DB1.TESTDB.dbo.TABLE2
END
GO
--4:构造语句,触发事件
-----------------------------------------
INSERT INTO TABLE1(ID,CLASS,MOBILETEL) VALUES(13,'FDS','FSDAFD')
----------------------------------------
--5:错误
服务器: 消息 7391,级别 16,状态 1,过程 tri_test,行 10
该操作未能执行,因为 OLE DB 提供程序 'MSDASQL' 无法启动分布式事务。
[OLE/DB provider returned message: [Microsoft][ODBC SQL Server Driver][SQL Server]其它会话正在使用事务的上下文。]
问题点数:50、回复次数:4Top
1 楼liuyun2003(流云(老老实实做人,认认真真还贷))回复于 2003-06-02 11:04:05 得分 0
你的联接服务器建立的有问题。你看一下你能否正常访问它。还有,你看一下分布式处理协调器启动了没有。Top
2 楼manica(caoxh)回复于 2003-06-02 14:29:53 得分 0
我的连接没有问题,我在QUERY里执行的都没有错误,就是 不能在触发器里执行,我的DTC也启动了。好象就是触发Top
3 楼manica(caoxh)回复于 2003-06-02 14:30:41 得分 0
器不能处理分布式的操作Top
4 楼manica007(caoxiaohua)回复于 2003-06-20 21:25:51 得分 50
很好解决,mail to meTop




