如何搭建SQL Server存储过程的开发环境?

snt*_*nth 3 sql-server stored-procedures development-environment visual-studio

我最近开始开发一个遗留应用程序,该应用程序的大部分业务逻辑都位于分布在两个或三个 SQL Server 数据库中的存储过程中。目前所有代码也是在实时环境中编辑的。

由于我是代码库的新手,我真的不想在实时环境中进行任何更改,因此我正在尝试建立一个开发环境。我们使用 Visual Studio 编写所有数据库对象的脚本,并在 Subversion 中跟踪这些对象。这样我就可以设置一个开发 SQL Server 实例来工作,但一个问题是代码充满了对服务器和数据库名称的硬编码引用,例如许多存储过程如下所示:

CREATE PROCEDURE server1.db1.dbo.proc1 AS

INSERT INTO db1.dbo.table1
EXEC server2.db2.dbo.proc2

END
Run Code Online (Sandbox Code Playgroud)

如何以安全的方式更改所有这些引用?到目前为止我想到了两个选择:

1) 有一个脚本运行全局搜索并替换我的 Subversion 工作副本上的服务器名称,然后针对我的测试数据库运行修改后的代码。

2) 通过编辑 \windows\system32\drivers\etc\hosts 文件在我的本地机器上设置 dns 别名,该文件将 server1 和 server2 重定向到数据库的开发实例。在生产服务器上,这些将指向生产数据库。

您认为以下哪一个设置更好?您是否认为我忽略了任何风险以及应该考虑哪些风险?

gbn*_*gbn 5

如果所有引用都是链接服务器“Server2”等,那么您可以在开发盒上为该链接服务器指定不同的底层 SQL Server

您可以执行以下操作之一: