2011-02-05 38 views
1

在辦公室我們使用Visual Studio 2008Team Foundation Server作爲我們的版本控制系統。讓Visual Studio執行SQL查詢

我們正在開發的產品主要是Teradata SQL腳本和存儲過程,通過自動調度程序部署到組織的Teradata數據庫上。

問題有:

每當我們需要修正的缺陷或交付的變化,我們檢查出的代碼,將其複製到另一個工具,使我們的變化,那麼一旦我們很高興,我們檢查它回到TFS。這將是輝煌的做在Visual Studio中的一切,但也有一些解決方案,我們需要先來了解:

  1. SQL語法高亮
  2. 能夠執行SQL腳本(將Teradata's .NET Data Provider做的工作?)
  3. 參數替換

當然語法高亮和SQL的執行能以某種方式來完成,但我特別擔心的是,參數替換將是攔截,因爲我從來沒有聽說過的視覺工作室做這樣的事情。

我們如何使用參數替換:

對於參數替換,我們需要使用我們的數據庫名稱參數(或任何文本爲此事)的能力,因此,當我們執行SQL ,Visual Studio基本上將代碼中的參數替換爲我們所連接到的數據源所需的任何內容,無論是開發,測試還是生產環境。

例如,我們可以讓查詢:

SELECT Client_Id, First_Name, Last_Name 
FROM <<Client Database>>.Client_Names 

當我們執行的是從Visual Studio,我們需要做的參數替換,所以在幕後,下面是什麼實際發送到數據庫服務器:

SELECT Client_Id, First_Name, Last_Name 
FROM Client.Client_Names 

以同樣的方式,如果我這樣做:

SELECT '<<Client Database>>' 

這將返回連接到生產服務器時的結果爲'Client'

另一方面,如果我連接到開發服務器,它將返回'DevA_Client'

我們目前使用的工具只是具有CSV文件中定義的值的參數(即Prod-params.csv)。然後在工具中有一個設置將Prod-params.csv鏈接到生產數據源連接。什麼這個CSV文件看起來像一個例子是:

<<Client Database>>,Client 
<<Order Database>>,Order 
<<SomeHistoricDate>>,CAST('1997-05-28' AS DATE) 

我很想有人能夠指出我的方向是能夠做任何的這個東西在Visual Studio。

+0

看起來我可以通過Visual Studio的** Server Explorer **添加Teradata的.NET數據提供程序。 [本文](http://www.developer.com/db/article.php/3092741)在這方面給了我一些幫助。 – Turgs 2011-02-05 07:12:50

回答

0

您所描述的所有任務都可以通過編寫Visual Studio AddIn包來完成,甚至是語法higligthing,但這不是一件簡單的任務。無論如何嘗試從這裏開始:http://msdn.microsoft.com/en-us/library/bb166533.aspx。基本上你可以通過擴展VS來實現永久性,因此參數更換也應該很容易。另外,如果你的目標數據庫有一個可用的.NET提供程序,那麼最終執行查詢應該是更簡單的任務。