Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como mover/copiar todos os bancos de dados com usuários, esquemas e funções de um servidor para outro

  1. Clique com o botão direito do mouse no banco de dados
  2. Clique nas tarefas
  3. Clique em gerar scripts
  4. Percorra o assistente e selecione suas tabelas
  5. Na página de opções, clique no botão Avançado (está lá, mas não se destaca muito bem)
  6. Altere a opção "Tipos de dados para script"

Existem opções para script de dados e logins (uma tonelada de outras coisas). É muito útil.

Aqui está o script que irá gerar um script para adicionar todas as funções em todos os bancos de dados
declare @selectStatement varchar(1000)

set @selectStatement = 'Use ?;SELECT ''USE ?''; SELECT ' + '''EXECUTE sp_AddRoleMember ''''' + ''' + roles.name + '''''''+','''''+''' +  Replace(users.name,''DOMAINA'',''DOMAINB'') + ''' + '''''''
     from sys.database_principals users
    inner join sys.database_role_members link
    on link.member_principal_id = users.principal_id
   inner join sys.database_principals roles
     on roles.principal_id = link.role_principal_id'

                            --where users.name like ''%%'''

                EXEC sp_MSForEachDB @selectStatement;