Мне посчастливилось работать с 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.
Спасибо!