我正在尝试从我的机器( Server 2012)到客户端服务器( server 2008)运行一个分布式事务。
我试着跑:
begin distributed transaction
select * from [172.01.01.01].master.dbo.sysprocesses
Commit Transaction
我得到了:
OLE DB provider "SQLNCLI11" for linked server "172.01.01.01" returned message "No transaction is active.".
我的MSSQL触发器:
ALTER TRIGGER [dbo].[ioTrigger_dbo_vsolv_mst_tproddtchng]
ON [dbo].[vsolv_mst_tproddtchng]
for INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT OPENQUERY (LINKED,'SELECT proddtchng_product_gid,
proddtchng_mrp,
proddtchng_tndpwtax,
proddtchng_tndpwotax,
proddtchng_kldpwtax,
当我尝试在具有两个链接服务器的本地SQL Server上触发SP时,出现有趣的错误。 上述异常处理的目的是将数据从一个链接服务器移动到另一个链接服务器。 当我从SSMS触发存储过程时,它就像一个魔咒,但是当我从Python触发它时,我得到了这些有趣的错误消息: (
'42000', '[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The OLE DB provider "SQLNCLI11" for linked server "XXXX" reported
域中有两个SQL服务器。Windows防火墙在这两台服务器上都被禁用,并且没有硬件防火墙。两台服务器位于同一子网中。
一个称为Controller的服务器被配置为一个分布式重放控制器。另一个服务器(称为客户端)被配置为分布式重播客户端。
已启动分布式重播控制器服务,但当我尝试启动分布式重播客户端服务时,会在客户端日志中得到以下错误:
[0xC8100005 (6)] Failed to connect controller with error code 0x800706BA.
在Windows系统日志中,我看到以下错误:
DCOM was unable to communicate with
我有一个要通过链接服务器执行的查询。该查询如下所示:
USE db1;
SET xact_abort ON;
DECLARE @statement NVARCHAR(max);
SET @statement = 'EXECUTE (''INSERT INTO T1(V1, V2) VALUES (1, 2)'') AT LS1';
BEGIN try
BEGIN TRANSACTION
EXEC Sp_executesql @statement
COMMIT TRANSACTION
END try
BEGIN
对于这个问题,让我们假设有两个服务器,ServerA和ServerB,并且在ServerA到ServerB上有一个链接服务器设置。我们还假设两个服务器的REMOTE_PROC_TRANSACTIONS设置为ON。
根据微软的BOL for BEGIN TRANSACTION:
如果在提交或回滚语句之前执行下列操作,则语句启动的本地事务将升级为分布式事务:
执行引用链接服务器上的远程表的INSERT、DELETE或UPDATE语句。如果用于访问链接的服务器的OLE DB提供程序不支持ITransactionJoin接口,则插入、更新或删除语句将失败。
当REMOTE_PROC_TRANSACTI
我使用链接服务器在分布式事务中执行一些查询。它不适用于分布式事务。我得到以下错误:
另一个会话正在使用的事务上下文。
即使是这个简化的示例也不起作用:
IF EXISTS(SELECT server_id from sys.servers WHERE name = 'SomeServer')
BEGIN
EXEC sp_dropserver @server = N'SomeServer';
END
EXEC sp_addlinkedserver
@server = N'SomeServer',
@srvproduc
我在两个不同的SqlServer服务器(一个是SQL2000,另一个是2008)中有相同的表。
我使用的是sql server management studio。
我希望每次对SqlServer 2000表(Table_1)中的表执行插入操作时,都会触发一个触发器,并且该记录也会被插入到SqlServer 2008表(也就是Table_1)中的同一个表中。
sql server 2008被定义为链接服务器,并且可以使用sql server management studio从2000db连接对2008db运行查询和执行插入。
触发器定义如下:
ALTER TRIGGER [dbo].[trg
我有一个Server 2012实例,其中有一个链接服务器,它使用驱动程序指向Iseries系统上的db2数据库。
我正在尝试启用分布式事务。我相信这个提供者确实支持他们按照IBM文档 (除非我误解了那个链接)。
我正在运行以下查询:
BEGIN TRANSACTION
UPDATE LINKEDSERVER.LINKEDDATABASE.SCHEMANAME.TABLENAME SET COLUMN = VALUE
SELECT CAST('qwerty' as integer) -- we want an error here so the transact
我想从本地mssql 2005服务器向远程mssql 2005服务器插入触发器中的数据。
我有一个表Syr;我创建一个触发器(在插入后)来检测是否添加了什么。我想将这些数据复制到另一个远程服务器的同一个表中。我的问题是,如果我只在普通查询中执行insert语句(非常简单,只使用静态数据进行测试),它就成功了;我甚至可以从远程服务器中进行选择。但是当我将这个简单的插入插入到触发器块中时:“无法开始分布式事务”。
CREATE TRIGGER T_SyrInserted
ON [DBProba].[dbo].[Syr]
AFTER INSERT
AS BEGIN
INSERT INTO [Rem
我们有两台服务器--一台在本地(windows server 2003),一台在godaddy(windows server 2008),在这两台服务器中都安装了sql server 2005,并在这两台服务器中创建了链接服务器。
我们已经为一个sampletbl表在godaddy中启用了触发器,每当我们试图使用触发器启用从godaddy数据库插入数据到本地数据库时,我们就会面临以下错误。
OLE DB提供程序"SQLNCLI“用于链接服务器"211_TEST”返回的消息“是活动的”。
Msg 7391,16级,状态2,程序36至211,第8行
无法执行此操作,因为用于链接服
我有一个Azure数据库设置作为一个链接服务器,可以查询罚款。我也可以执行存储过程,没有任何问题。
但是,一旦我尝试将存储过程调用的结果插入到表中,就会得到RPC失败:-
[Microsoft][SQL Server Native Client 11.0]
The partner transaction manager has disabled its support for remote/network
transactions.
我已经在链接服务器属性上将RPC设置为true,并将MSDTC作为服务运行。
复制:-
exec [AzureLinkedServerName].myAzure
我遇到了问题:我已经在Windows中安装了1台sql server 2014 Express,在另一台服务器上安装了1台Oracle数据库服务器11g。
现在,我希望通过链接服务器将数据从SQL服务器插入到Oracle数据库。我能够作出选择,更新,插入成功。但是,当我试图执行具有事务的存储过程时,我会得到以下错误:OLE DB访问接口"OraOLEDB.Oracle“用于链接服务器"UGOV”返回的消息“无法在事务中登记”。。
程序的结构如下:
USE [payroll]
GO
/****** Object: StoredProcedure [dbo].[InsertPay
我在MSSQL中有一个链接的Oracle服务器,我正在尝试将查询结果返回到临时表中。查询超过8,000个字符,所以我不能使用我通常使用的OPENQUERY()。我可以运行下面的代码,并看到结果,因为RPC是启用的。
/*
Declare query variable, since query is more than 8,000 characters
*/
DECLARE @myQuery VARCHAR(MAX)
/*
Set query
*/
SET @myQuery = 'Query text here'
EXECUTE (@myQuery) AT ServerNam