让Visual Studio执行SQL查询

时间:2011-02-05 06:56:45

标签: .net sql database visual-studio teradata

在办公室,我们使用 Visual Studio 2008 Team Foundation Server 作为我们的版本控制系统。

我们正在开发的产品基本上是Teradata SQL脚本和存储过程,可以通过自动调度程序部署在组织的 Teradata 数据库上运行。

我们遇到的问题:

每当我们需要修复缺陷或提供更改时,我们会检查代码,将其复制到另一个工具进行更改,然后一旦我们满意,我们会将其检入TFS。在Visual Studio中完成所有工作会很棒,但我们需要先找到一些解决方案:

  1. SQL语法突出显示
  2. 执行SQL脚本的能力(Teradata's .NET Data Provider会完成这项工作吗?)
  3. 参数替换
  4. 当然可以以某种方式完成语法高亮和SQL执行,但我特别担心参数替换将成为阻塞,因为我从未听说过Visual Studio做过这样的事情。

    我们如何使用参数替换:

    对于参数替换,我们需要能够为我们的数据库名称使用参数(或任何文本),这样当我们执行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中完成任何这些工作的方向。

1 个答案:

答案 0 :(得分:0)

您所描述的所有任务都可以通过编写Visual Studio AddIn包来完成,甚至是语法higligthing,但这不是一项简单的任务。无论如何,试着从这里开始:http://msdn.microsoft.com/en-us/library/bb166533.aspx。基本上你可以通过扩展VS来做任务,所以参数替换也应该很容易。此外,如果您的目标数据库有一个可用的.NET提供程序,那么最终执行查询应该是更简单的任务。