wie man alle database (schnell) seit SQL server 2008 Express zu SQL server 2008 R2 (NO Express)

Nun, ich hatte sql 2008 Express, und jetzt habe ich installiert, SQL server, jetzt möchte ich sql Express löschen, aber in diesem Fall habe ich alle meine database Ich habe gearbeitet (plus von 20), also sind sie sehr wichtig für mich, wie kann ich es an SQL server 2008 r2, ich weiß, ich kann database von allen, aber ich möchte nicht viel zu arbeiten, gibt es einen path kurz, für die Passage al database? einen Ordner abholen? etwas? Vielen Dank!

Ich habe alle database, und ich fügte hinzu, alle (aber eins für eins) Ich fügte alle in den gleichen windowsn und in 5 minutos ich hatte alle database in sql (kein Express)

Erstellen Sie ein SSIS-Paket mit 4 Schritten.

Zuerst eine SQL-Task ausführen, die alle DBs an einen bestimmten memoryort sichert:

exec sp_msforeachdb ' IF DB_ID(''?'') > 4 Begin BACKUP DATABASE [?] TO DISK = N''\\Backups\?.BAK'' WITH NOFORMAT, INIT, NAME = N''?-Full Database Backup'', SKIP, NOREWIND, NOUNLOAD declare @backupSetId as int select @backupSetId = position from msdb..backupset where database_name=N''?'' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N''?'' ) if @backupSetId is null begin raiserror(N''Verify failed. Backup information for database ''''?'''' not found.'', 16, 1) end RESTORE VERIFYONLY FROM DISK = N''\\Backups\?.BAK'' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND End ' 

Zweitens Erstellen Sie eine SP, um DBs mit einer variables für Standort und DB-Name wiederherzustellen:

 CreatePROCEDURE [dbo].[uSPMas_RestoreDB] @DBname NVARCHAR(200), @BackupLocation NVARCHAR(2000) AS BEGIN SET nocount ON; create table #fileListTable ( LogicalName nvarchar(128), PhysicalName nvarchar(260), [Type] char(1), FileGroupName nvarchar(128), Size numeric(20,0), MaxSize numeric(20,0), ) insert into #fileListTable EXEC('RESTORE FILELISTONLY FROM DISK = '''+@BackupLocation+@dbname+'.bak''') Declare @Dname varchar(500) Set @Dname = (select logicalname from #fileListTable where type = 'D') Declare @LName varchar(500) Set @LName = (select logicalname from #fileListTable where type = 'L') declare @sql nvarchar(4000) SET @SQL = 'RESTORE DATABASE ['+ @dbname +'] FROM DISK = N'''+@BackupLocation + @dbname +'.BAK'' WITH FILE = 1, MOVE N'''+ @Dname +''' TO N''E:\YourLocation\'+ @dbname +'.mdf'', MOVE N'''+ @LName +''' TO N''D:\Your2ndLocation\'+ @dbname +'_log.ldf'', NOUNLOAD, REPLACE, STATS = 10' exec sp_executesql @SQL drop table #fileListTable END 

Drittens Erstellen Sie einen ForEach Loop Container und setzen Sie eine Execute Sql Statement mit Variable:

 EXEC uSPMas_RestoreDB ? , ? 

Verwenden Sie die für ForEach Loop Container, um die variables zu übergeben

Viertens, Erstellen Sie eine 'Transfer Logins' Aufgabe, um über alle DB-Logins zu bewegen