在服务器的所有数据库参考存储过程(Reference Stored procedures for a

2019-09-18 08:51发布

我想创建一个和多个同一个存储过程我的SQL Server 2008上(甚至全部)的数据库。

我能做到一次或者我应该在asp.net项目的参考数据库单独创建呢?

请帮我.....

Answer 1:

这个问题已经被问已经在SO多次,但有趣的是,似乎是没有关于最好的答案一致。 因此,这里是各种人建议的主要选项(在没有特殊顺序)的摘要:

  1. 与把它放在主数据库sp_前缀,以便SQL Server将查找它有第一
  2. 把它放在模型数据库,所以它会自动添加到所有新的DB
  3. 只为“全球性”的程序(以及其它对象)创建一个数据库,并使用三部分命名称呼他们
  4. 随着3,但创建其他数据库中的同义词,所以你并不需要由三部分组成的命名
  5. 使用商用或自主开发的工具来管理部署到多个数据库
  6. 由于5,但部署到一个数据库,然后diff数据库和应用差异脚本部署到其他数据库

在我看来,1是一个非首发,因为微软明确地说,你不应该创建在master数据库中的对象。 2听起来不错,但在实践中的数据库被恢复或复制往往比从头(YMMV)创建的,因此,使用模型是不可靠的。

图3和4是良好的表和视图,但执行上下文可以存储过程和函数是一个问题。 但是,这取决于程序的逻辑,它可能是你的情况是可行的。

但1-4都具有潜在的问题,如果您只有一个对象,你只能有一个对象的一个​​版本,它往往是非常有用的在不同DB提供不同的版本,用于测试或只是针对不同的客户。

5和6是同一主题的变化,我个人觉得这是最好的办法,因为部署是你无论如何都要解决一个问题,所以你还不如做它,并确保你有知识,工具和流程到位能够干净,快速部署代码在受控制的,自动化的方式的任何数据库。



Answer 2:

请在主数据库中的存储过程或将不会被删除的数据库。 参数传递给存储过程,而找出你想要得到的数据的数据库,并做相应的工作,休息。



文章来源: Reference Stored procedures for all databases in server