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

标签 sql-server visual-studio stored-procedures development-environment

我最近开始处理一个遗留应用程序,该应用程序的大部分业务逻辑都在分布在两个或三个 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

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

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

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

您认为以下哪种设置更好?您是否看到我忽略的任何风险以及应该考虑的风险?

最佳答案

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

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

关于sql-server - 如何搭建SQL Server存储过程的开发环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3523862/

相关文章:

visual-studio-2010 - Visual Studio 2010 发布配置文件——它们存储在哪里?

mysql - #1064 - 检查与您的 MariaDB 服务器版本对应的手册以获得正确的语法?

sql-server - 如何将 int 集以字符串形式传递给 sqlserver 存储过程并在 IN 子句中使用它

sql-server - 修改存储在 SQL Server 表中的 XML 文档中的日期字段

SQL 4表内连接也拾取和空值?

visual-studio - 如何将 curl 引号作为直引号粘贴到我的 IDE 中?

.net - 如何安装支持 .NET Core 6.0 的 .NET SDK?

sql - 无法启动服务器上的服务 MSSQLSERVER (mscorlib)

sql-server - 如何在 SQL Server 中将记录集转换为分隔字符串

mysql - 在函数内部调用过程会抛出 MySQL ERROR 1422