【发布时间】:2017-08-04 10:20:56
【问题描述】:
我在 windows 8.1 pro 上使用 sql server 2014
并调用在触发器中调用动态链接服务器查询的过程
(我不会放完整的代码,而是把它当作一个算法来考虑
CREATE PROCEDURE DynamicLinkedQuery(@InstanceName NVARCHAR(32),@DatabaseName NVARCHAR(64),@SchemaName NVARCHAR(64), @TableName NVARCHAR(64))
as
begin
declare
@SqlQuery NVARCHAR(MAX)
Select @SQlQuery='INSERT INTO ['+ @InstanceName+ '].['+@DatabaseName+'].' + @SchemaName + '.' + @TableName + ' Values(3)'
--assuming we have one int columns in destination table
EXECUTE sp_Executesql @SQLQuery
End
因为我使用的是动态链接服务器查询,所以它被认为是 分布式查询
所以我们必须在两个链接的服务器上运行分布式事务协调器服务
当然首先要按照此链接中提到的步骤进行配置
但我仍然收到错误
链接服务器“ServerName”的 OLE DB 提供程序“SQLNCLI11”返回消息“没有处于活动状态的事务。”。
但是当我执行非动态查询时
插入到 RemoteServerName.RemoteDataBaseName.RemoteSchemaName.RemoteTableName 值(1,1)
一切正常,操作完成
请问这是什么原因,我在 LocalDtc 中错过了哪些配置
我应用了这个解决方案
Linked servers SQLNCLI problem. "No transaction is active"
但它从来没有为我工作过
【问题讨论】:
标签: sql-server