在办公室中,我们使用带有Team Foundation Server的Visual Studio 2008作为我们的版本控制系统。
我们正在开发的产品本质上是 Teradata SQL 脚本和存储过程,它们通过自动调度程序部署在组织的Teradata数据库上运行。
我们遇到的问题:
每当我们需要修复缺陷或交付更改时,我们都会签出代码,将其复制到另一个工具以进行更改,然后一旦我们满意,我们就会将其签回 TFS。在 Visual Studio 中做所有事情会很棒,但是我们需要首先找到一些解决方案:
- SQL 语法高亮
- 执行 SQL 脚本的能力(Teradata 的 .NET 数据提供程序能胜任这项工作吗?)
- 参数替换
当然可以以某种方式完成语法突出显示和 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 中做任何这些事情的方向。