我目前正在調查TST(SQL自動化測試工具),這將促進數據庫迴歸測試。我已經能夠創建一個基本的測試案例,這是下面:無法執行從TST(SQL自動化工具)的遠程存儲過程
/*
Verification of stored proc - FOH_Status
Returns online availabity status for specified date
*/
/****** Object: StoredProcedure [dbo].[SQLTest_Status] Script Date: 11/23/2011 16:56:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE dbo.SQLTest_Status
AS
BEGIN
---CREATE A TEMP TABLE
CREATE TABLE #ControlValue (
ControlMode TINYINT
)
INSERT INTO #ControlValue EXEC dbo.Status 17254, 3 ,'2011-11-20 00:00:00'
DECLARE @CONTROL TINYINT
SET @CONTROL = (SELECT TOP 1* FROM #ControlValue)
EXEC TST.Assert.Equals 'ControlMode enabled for specified date', 1, @CONTRO
END
GO
我則繼續鏈接到我們的QA SQL服務器,它是成功的。然後修改了存儲過程調用QA SQL服務器上的存儲過程:
INSERT INTO #ControlValue EXEC [X.X.X.X].databasename.dbo.Status 17254, 3 ,'2011-11-20 00:00:00'
運行後從TST亞軍會導致測試失敗與DTC事務失敗消息:
OLE DB provider "SQLNCLI10" for linked server "X.X.X.X" returned message "The transaction manager has disabled its support for remote/network transactions.".
Error: 7391, The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "X.X.X.X" was unable to begin a distributed transaction.
我已經證實MS DTC將允許QA SQL服務器上的遠程連接,入站和出站調用。
另外,請在查詢窗口中的存儲過程,並返回正確的結果集
EXEC [X.X.X.X].databasename.dbo.Status 17254, 3 ,'2011-11-20 00:00:00'
任何想法如何糾正這個問題?
我應該修改查詢,包括交易,因爲其返回的錯誤包括:「無法啓動分佈式事務」
改變了註冊表例外的MS DTC設置,我仍然得到相同的錯誤。是否有可能在存儲過程中設置鏈接服務器,強制它在本地服務器上建立連接而不是默認設置 – Nobody
重新啓動服務器後閱讀 - http://stackoverflow.com/questions/2931957/linked-服務器 - SQLNCLI-問題沒有交易的活躍。沒有工作 – Nobody