Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Hromadna migracia stoviek db MSSQL

3 parametry (jméno DB + 2 soubory MDF a LDF) jsou "kopec udaju"? Min parametru uz tam ani dat nemuzes

Co ti brani si to vybrat, udelat z toho skript a pak spustit?

Tohle ti vypise vsechny DB vcetne souboru

SELECT
    db.name AS DBName,
    type_desc AS FileType,
    Physical_Name AS Location
FROM
    sys.master_files mf
INNER JOIN 
    sys.databases db ON db.database_id = mf.database_id

A ty z toho potrebujes udelat skript:

CREATE DATABASE MyAdventureWorks   
    ON (FILENAME = 'C:\MySQLServer\AdventureWorks2012_Data.mdf'),  
    (FILENAME = 'C:\MySQLServer\AdventureWorks2012_Log.ldf')  
    FOR ATTACH;  

Takze si spust tohle, zkopiruj sloupec a mas rovnou skript na hromadne pripojeni vsech DB:

select prikaz = 'create database ' + db.name + ' on (filename = ''' + mf.Physical_Name + '''), (filename = ''' + lf.physical_name + ''') for attach; go;' 
  from sys.databases db
  join sys.master_files mf ON db.database_id = mf.database_id and mf.type_desc = 'ROWS'
  left outer join sys.master_files lf ON db.database_id = lf.database_id and lf.type_desc = 'LOG'
  where not db.Name in ('master', 'tempdb', 'model', 'msdb')

Predpokladem je, ze kazda databaze ma jen MDF a LDF soubor, neni rozhozena do vice souboru. Ale to si zkontrolujes prvnim vypisem
Podobne si muzes udelat skript na detach vseho, ten bude jednodussi, protoze ti staci vypis ze sys.master_files

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny