Como fazer: Alterar a plataforma de destino e publicar um projeto de banco de dados

Você pode alterar a versão do SQL Server de destino do projeto de banco de dados SSDT (Ferramentas de dados do SQL Server) para qualquer instância com suporte do SQL Server (SQL Server 2005, 2008, 2008 R2, Microsoft SQL Server 2012 ou SQL Azure). Ao fazer isso, você pode centralizar seu desenvolvimento de banco de dados em um único projeto, mas publicá-lo em várias instâncias do SQL Server de acordo com a necessidade.

O SSDT também simplifica essa tarefa ao conhecer a plataforma de destino e detectar automaticamente erros no código (por exemplo, quando você estiver usando recursos sem suporte para um projeto que será publicado no SQL Azure).

Para alterar a plataforma de destino de um projeto

  1. Clique com o botão direito no seu projeto no Gerenciador de Soluções e selecione Propriedades. Selecione a guia Configurações do Projeto à esquerda para obter acesso à página de propriedades Configurações do Projeto.

  2. A lista suspensa Plataforma de destino nesta página contém todas as plataformas de SQL Server com suporte para as quais um projeto de banco de dados pode ser publicado. Para este procedimento, selecione o SQL Azure.

Para usar a validação de plataforma ao editar scripts

  1. Clique com o botão direito do mouse na tabela Produtos no Gerenciador de Soluções e selecione Exibir Código para abri-lo no Editor do Transact-SQL.

  2. Acrescente ON [PRIMARY] ao final da instrução CREATE TABLE .

  3. Observe que o seguinte erro é exibido no painel Lista de Erros: SQL70015: “Esquema de particionamento e referência a grupo de arquivos” não tem suporte no SQL Azure.

    O SSDT valida automaticamente seu script com base na plataforma de destino. Nesse caso, como o grupo de arquivos não tem suporte no SQL Azure, o SSDT retorna um erro. Para obter uma lista de instruções do Transact-SQL que não têm suporte no SQL Azure, confira Partially Supported Transact-SQL Statements (Microsoft Azure SQL Database).

  4. Remova a cláusula ON . Observe que o erro desaparece imediatamente da Lista de Erros.

Para publicar um projeto de banco de dados

  1. Se você tiver acesso a uma instância do SQL Azure, poderá saltar para a próxima etapa. Caso contrário, clique com o botão direito do mouse no projeto TradeDev no Gerenciador de Soluções e selecione Propriedades para acessar a página de propriedades Configurações de Projeto. Use a lista suspensa Plataforma de destino para selecionar a plataforma SQL Server na qual você deseja publicar o projeto.

  2. Clique com o botão direito do mouse no projeto TradeDev no Gerenciador de Soluções e selecione Publicar. O SSDT começará a compilar seu projeto. Se não houver erro de build, a caixa de diálogo Publicar Banco de Dados será exibida.

  3. Na caixa de diálogo Publicar Banco de Dados, selecione Editar para editar a conexão de banco de dados de destino.

  4. Na caixa de diálogo Propriedades de Conexão, insira o nome da instância do SQL Server e suas credenciais para autenticação. Em Conectar a um banco de dados, insira NewTrade. Isso tentará publicar seu projeto de banco de dados em um novo banco de dados. Você também pode escolher um banco de dados existente para o qual publicar. Por exemplo, se você escolher o banco de dados TradeDev existente, todas as alterações que você fez nos objetos (como scripts) no projeto TradeDev offline serão propagadas para o banco de dados TradeDev online.

    Se você tiver permissão para fazer qualquer alteração no banco de dados no qual você deseja publicar, pressione o botão Publicar . Se, no entanto, você não tiver acesso para gravação a um banco de dados de produção, poderá selecionar o botão Gerar Script para produzir um script de publicação do Transact-SQL, que poderá ser entregue a um DBA. O DBA pode executar o script para atualizar o servidor de produção, de modo que seu esquema esteja sincronizado com o projeto de banco de dados.

  5. A janela Operações de Ferramentas de Dados mostrará o progresso de suas operações de publicação e o notificará se ocorrerem erros. Nessa nova janela, você também pode optar por exibir a visualização da implantação, o script gerado ou os resultados completos da publicação, se desejado.

  6. Você também pode salvar as configurações de publicação em um perfil, de modo que você possa reutilizar as mesmas configurações para operações de publicação futuras. Para fazê-lo, selecione o botão Salvar Perfil Como, na caixa de diálogo Publicar Banco de Dados. No futuro, você poderá selecionar o botão Carregar Perfil quando desejar recarregar configurações existentes.

  7. Observe as mensagens na janela Operações de Ferramentas de Dados . Selecione o link “Exibir Preview” à direita de Criando preview para a publicação…. Isso abrirá o relatório de preview da implantação. Se a plataforma de destino do projeto não for idêntica ao servidor de banco de dados para o qual o projeto será publicado, o SSDT emitirá um aviso nesse relatório. Por exemplo, se a plataforma de destino do projeto for o Microsoft SQL Server 2012 e você estiver tentando publicar o projeto em uma instância de servidor do SQL Server 2008 R2, receberá o seguinte aviso na janela de Saída:

Um projeto que especifica o Microsoft SQL Server 2012 como a plataforma de destino pode enfrentar problemas de compatibilidade com o SQL Server 2008. Se tal projeto contiver entidades (por exemplo, um objeto Sequence) introduzidas no Microsoft SQL Server 2012, a operação de publicação falhará.

A implantação falhará se os predicados de objeto usarem CONTAINS ou FREETEXT em um índice de texto completo recém-criado e se scripts transacionais forem utilizados. Se a opção para incluir scripts transacionais for habilitada durante a implantação, os procedimentos e as exibições serão definidos dentro de uma transação, enquanto um índice de texto completo é definido fora de uma transação no fim do script de implantação. Devido a essa classificação no script, os procedimentos ou as exibições que usam CONTAINS ou FREETEXT não serão resolvidos em relação ao índice de texto completo, resultando em um erro de implantação.