2011-11-25 44 views
1

我目前正在調查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' 

任何想法如何糾正這個問題?

我應該修改查詢,包括交易,因爲其返回的錯誤包括:「無法啓動分佈式事務」

回答

1

您是否嘗試過的每一步中Distributed Transaction Issue for Linked Server in SQL Server 2008描述?

+0

改變了註冊表例外的MS DTC設置,我仍然得到相同的錯誤。是否有可能在存儲過程中設置鏈接服務器,強制它在本地服務器上建立連接而不是默認設置 – Nobody

+0

重新啓動服務器後閱讀 - http://stackoverflow.com/questions/2931957/linked-服務器 - SQLNCLI-問題沒有交易的活躍。沒有工作 – Nobody

0

我對使用SQL Server單元測試框架感興趣。在Red Gate,我們正在對這些工具的使用進行一些研究,並且我們希望很快在SSMS中發佈一個圖形單元測試運行器。見www.sql-test.com。該工具建立在tSQLt開源框架上。這是你碰到過的嗎?

您可能有興趣通過向我們反饋您的單元測試要求來幫助我們嗎?

+0

是的,那不會有問題。我希望直接發送詳細信息,而不是通過評論。 – Nobody

+0

謝謝!請直接通過David Dot Atkinson在red-gate dot com與我聯繫。 –