将存储过程从 sql server 拉到数据库项目

Posted

技术标签:

【中文标题】将存储过程从 sql server 拉到数据库项目【英文标题】:pull stored procedures from sql server to database project 【发布时间】:2013-04-24 23:03:11 【问题描述】:

我有一个 sql server 数据库,其中包含许多存储过程。我想将这些存储过程添加到数据库项目中的 TFS 源代码管理中。

逐一复制所有这些内容将是一项艰巨且耗时的任务。是否有任何自动化方式或工具可以从数据库中提取所有存储过程并添加到 Visual Studio 数据库项目中?

【问题讨论】:

这是一次性任务还是您希望必须定期执行此任务? 在这种情况下,我会选择 wilsjd 的答案来使用模式比较。如果您要定期执行此操作,则可以使用 Red Gate 的 SQL 源代码控制直接从 SSMS 链接到您的数据库项目。我为红门工作。 【参考方案1】:

这取决于 SQL Server 和 Visual Studio 的版本,但假设 SQL Server 2012 和 Visual Studio Premium 2012 或更高版本

如果您在 Visual Studio 中有一个数据库项目,您应该能够对数据库进行架构比较,并从数据库中提取所有对象,包括存储过程。

还有其他人问过类似的问题。 例如:http://forums.asp.net/t/1847000.aspx/1 链接到 http://msdn.microsoft.com/en-us/data/hh297028 以获得 SSDT 指南。

【讨论】:

如果您有一个新的数据库项目,您可以右键单击它并选择导入 > 数据库。否则,使用模式比较也可以。【参考方案2】:

在 SSMS (Management Studio) 中,右键单击资源管理器窗格中的数据库图标,单击“任务...”,然后单击“生成脚本”。

【讨论】:

【参考方案3】:

我们可以使用 Visual Studio 2012 解决此问题。请按照以下步骤解决此问题 --

    在 VS 2012 中添加 SQLServerDatabase 项目。 右键单击 DatabaseProject 并选择 Import。 将对应的数据库导入到 SQL Server 数据库项目中。 每当我们在 SQL Server 数据库中进行更改时,右键单击 VS SQLServerDatabase 项目并选择架构比较。 跟随向导。 如果用户创建/编辑了表或 SP 或视图,则 Schema Copare 将显示更改。 交换源和目标并在模式比较中选择适当的操作。

【讨论】:

以上是关于将存储过程从 sql server 拉到数据库项目的主要内容,如果未能解决你的问题,请参考以下文章

MS SQL Server - 如何将所有存储过程从我的机器导出到我的朋友机器?

将数据从 MS Sql Server 存储过程导出到 excel 文件

SQL Server - 将存储过程从一个数据库复制到另一个数据库

将 SQL Server 存储过程转换为 Oracle 过程以从表中查询

Visual Studio 2013:单元测试 SQL Server 数据库项目时模拟存储过程

将 SQL Server 上的存储过程迁移到 HPL/SQL(Hadoop 生态系统)