使用 Visual Studio 2012 高级版导出架构比较升级脚本到 transact-sql

Posted

技术标签:

【中文标题】使用 Visual Studio 2012 高级版导出架构比较升级脚本到 transact-sql【英文标题】:Export schema compare upgrade script to transact-sql with visual studio 2012 premium 【发布时间】:2014-01-24 23:53:34 【问题描述】:

我有幸在工作中使用了 Visual Studio 2012 Premium。我被分配的任务之一是在开发和系统测试数据库之间进行模式比较。这一切都很好,但是当我生成要移交给迁移团队的脚本时,我在标题中得到了这个:


/*
Deployment script for MyGloriousDatabase

This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
*/

GO
:setvar DatabaseName "MyGloriousDatabase"
:setvar DefaultFilePrefix "MyGloriousDatabase"
:setvar DefaultDataPath "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\"
:setvar DefaultLogPath "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\"

GO
:on error exit
GO
/*
Detect SQLCMD mode and disable script execution if SQLCMD mode is not supported.
To re-enable the script after enabling SQLCMD mode, execute the following:
SET NOEXEC OFF; 
*/
:setvar __IsSqlCmdEnabled "True"
GO
IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
    BEGIN
        PRINT N'SQLCMD mode must be enabled to successfully execute this script.';
        SET NOEXEC ON;
    END

GO
USE [$(DatabaseName)];
...

现在,将其删除并制作成 .sql 脚本并不难,您可以简单地在 SSMS 中运行。但我看到以前版本的 Visual Studio 有一个“导出到 Transact-SQL”选项。该选项是否隐藏在 2012 年?我能找到的最好的方法是注释掉 SQLCMD 行。

谢谢!

【问题讨论】:

【参考方案1】:

我也没有看到执行此 Visual Studio 2013 Premium 的选项,但是通过 SSMS 中的 Query->SQLCMD 模式菜单项打开 SQL 命令模式,生成的脚本可以在 SSMS 中运行。

见:sql-server-setvar-error

【讨论】:

以上是关于使用 Visual Studio 2012 高级版导出架构比较升级脚本到 transact-sql的主要内容,如果未能解决你的问题,请参考以下文章

visual studio 2012 密钥

谁有visual studio 2012 professional的密钥

如何在 Visual Studio 2012 速成版附带的混合中制作 wpf 应用程序

2013 年发布后的 Visual Studio 2012 速成版在哪里?

谁有microsoft visual studio 2010 旗舰版的产品密钥 急需!

visual studio2012怎么安装