是否自动更新存储过程(T-SQL)修改?

时间:2015-07-15 06:13:31

标签: sql sql-server tsql stored-procedures

我有两个相同的存储过程和动态查询。

让我们说

  • 存储过程A
  • 存储过程B

两者都在不同的数据库中。但它们具有相同的代码(不完全相同.4-5行不同)。

有没有办法将存储过程A中完成的任何修改自动更新到存储过程B

否则我总是需要手动复制和粘贴更改。这是一个容易出错的活动。任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:3)

你可以这样做:

在数据库A中:

  • 以某种方式设计存储过程,您有一个参数 您想要在其中工作的数据库

在数据库B中:

  • 为数据库A中的过程创建同义词

示例:

{{1}}

因此您只需维护一次代码,而在数据库b中,您只能拥有此程序的“链接”。

希望这有助于:)

答案 1 :(得分:0)

这基本上就是SSDT的设计理念,你的想法是你把你的T-SQL和架构写成CREATE语句,你构建一个“dacpac”,然后使用sqlpackage.exe将dacpac部署到你想要的任何数据库

这样做你有一个SSDT项目的开销,但它确实解决了现有方法的主要问题“这是一个容易出错的活动。”

我的博客文章介绍了如何将现有数据库导入SSDT(在本例中为adventureworks,但将adventureworks替换为您的数据库):

https://the.agilesql.club/Blog/Ed-Elliott/AdventureWorksCI-Step2-MDF-To-Dot-Sql