sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man flyttar/kopierar alla databaser med användare, schema och roller från en server till en annan

  1. Högerklicka på DB
  2. Klicka på uppgifter
  3. Klicka på generera skript
  4. Gå igenom guiden och välj dina tabeller
  5. På alternativsidan klickar du på knappen Avancerat (den finns där, sticker bara inte ut särskilt bra)
  6. Ändra alternativet "Typer av data till skript"

Det finns alternativ för att skripta data och inloggningar (en massa andra saker). Det är väldigt praktiskt.

Här är skriptet som genererar ett skript för att lägga till alla roller i alla databaser

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;


  1. Välj från tabell om posten finns i en annan tabell

  2. Välj flera ID från en tabell

  3. Showplan Förbättringar för UDF:er

  4. Vilka fenomen försöker MySQL förhindra genom att låsa hela tabellen vid exekvering av Delete-satsen med villkoret på en icke-indexerad kolumn