Compare BD
Visual studio Schema Compare File -> new project Templates -> SQL Server -> SQL Server Database Project
botão direito no projeto criado -> Schema Compare
Clique na engrenagem, e siga:
General (marcar):
Include transactional scripts
Object Types (desmarcar):
Application Roles Database Roles Extended Properties Permissions Role Membership Rules Users
caso o banco tenha muitas mudanças (como o blue monitor), é preciso desmarcar tudo e ir marcando apenas um tipo de schema por vez ------
Aggregate Inline functions partiction functions Scalar-valued functions Table-valued functions
Stored procedures
Synonyms
User-defined Data Types User-defined Table Types User-defined Types (CLR)
gerar scripts na ordem: 1 - Tabelas 2 - Functions 3 - Types 4 - Storeds
Selecione no Dropdown "Select Source" o banco Origem (ou seja, o banco que servirá de modelo, como o banco de dev) marque Database, e encontre o banco, clique em Connect
Selecione no Dropdown "Select Target", o banco Destino (ou seja, o banco em que serão feitas as alterações, como um banco de homologação) marque Database, e encontre o banco, Connect
clique em Compare
Verifique se é necessário retirar alguma coisa, como sinônimos, alterações sem necessidade, etc Clique no pergaminho ao lado do botão Update, chamado Generate Script De preferência, cole este script no sql server, pois pode dar problemas com encoding se colar no bloco de notas, por exemplo.
remover alguns trechos do schema compare do VS:
do início:
- setvar DatabaseName "dem_bluemonitor"
- setvar DefaultFilePrefix "dem_bluemonitor"
- setvar DefaultDataPath "E:\SQL\BDs\"
- setvar DefaultLogPath "E:\SQL\Logs\"
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)]; (também aparece no final. remover) GO