我是否可以使用SQL Server Project来比较某些存储过程中的差异?

时间:2015-12-16 05:37:36

标签: sql sql-server visual-studio visual-studio-2015

假设我在Visual Studio 2015中的SQL Server项目中有x个存储过程。

e.g。 5个存储过程。

我想对这5个存储过程与数据库服务器上的内容进行比较。我只是想比较一下我的项目中的5个存储过程与数据库中的存储过程之间的差异,类似于模式比较。

此项目目前未链接到任何数据库,因为我担心它会搞砸现有数据库。现有的数据库有数百个存储过程,但我只想找出这些X或5个存储过程之间的区别。

这是否可以使用SQL Server项目?

2 个答案:

答案 0 :(得分:0)

有许多方法可以比较SQL Server中的存储过程。

  1. 比较两个程序的脚本
  2. 使用以下查询选择过程脚本

     SELECT OBJECT_DEFINITION(p.object_id) FROM sys.procedures p
    

    &安培;然后与另一个程序的脚本进行比较。

    2:

     SELECT p.modify_date FROM sys.procedures p
    

    选择程序的修改日期并进行比较。

答案 1 :(得分:0)

我尝试创建一个脚本来转储要在数据库上比较的所有过程的定义,以分隔用过程名称命名的文件,然后我会创建另一个脚本来在转储的脚本之间运行差异特定目录与版本控制下的脚本,并将输出定向到文件。也许使用PowerShell是一个很好的方法去做甚至批处理。这个脚本应该做的就是遍历转储脚本的目录内容并在版本控制目录树上获取具有相同名称的脚本,并且脚本将逐个比较将输出指向显示差异的文件。