Как передать всю базу данных (быстро), так как SQL Server 2008 Express SQL Server 2008 R2 (НЕТ экспресс) - PullRequest
1 голос
/ 28 апреля 2011

Ну, у меня был SQL 2008 Express, и теперь я установил SQL Server, теперь я хочу удалить SQL Express, но в этом случае у меня есть вся моя база данных, с которой я работал (плюс 20), поэтому они очень важны для меня, как я могу передать его на SQL Server 2008 R2, я знаю, что я могу сделать базу данных из всех, но я не хочу много работать, есть короткий путь, для передачи всей базы данных? справиться с папкой? что-то? спасибо!

Ответы [ 2 ]

2 голосов
/ 28 апреля 2011

Я приложил все базы данных, и я добавил, все (кроме одного для одного) я добавил все в тех же окнах и через 5 минут у меня была вся база данных в SQL (без экспресса)

1 голос
/ 28 апреля 2011

Создание пакета служб SSIS с 4 шагами.

Во-первых, задача «Выполнение SQL», которая создает резервные копии всех БД в определенном месте:

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
'

Во-вторых, создайте SP для восстановления БД, используя переменную для местоположения и имени БД:

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 

В-третьих, создайте контейнер цикла ForEach и поместите оператор Execute Sql с переменной:

EXEC uSPMas_RestoreDB ? , ?

Используйте контейнер цикла ForEach для передачи переменных

В-четвертых, создайте задачу «Передача имен входа» для перемещения по всем именам входа в БД.

...