Megosztás a következőn keresztül:


sp_attach_db (Transact-SQL)

A következőkre vonatkozik:SQL Server

Adatbázist csatol egy szerverhez.

Fontos

Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását. Javasoljuk, hogy inkább használd CREATE DATABASE <database_name> FOR ATTACH . További információ: CREATE DATABASE. Ha több naplófájl újra épít, ha egy vagy több új helyet kap, használd CREATE DATABASE <database_name> FOR ATTACH_REBUILD_LOG.

Ne csatolj vagy állíts vissza ismeretlen vagy megbízhatatlan forrásokból származó adatbázisokat. Az ilyen adatbázisok rosszindulatú kódot tartalmazhatnak, amelyek nem szándékos Transact-SQL kódot hajthatnak végre, vagy hibákat okozhatnak a séma vagy a fizikai adatbázis szerkezetének módosításával. Mielőtt ismeretlen vagy nem megbízható forrásból származó adatbázist használna, futtassa DBCC CHECKDB az adatbázison egy nem gyártási kiszolgálón, és vizsgálja meg a kódot, például a tárolt eljárásokat vagy más felhasználó által definiált kódot az adatbázisban.

Szemantika

sp_attach_db
    [ @dbname = ] N'dbname'
    , [ { @filename1 ... @filename16 } = ] { N'*filename1*' ... N'*filename16*' }
[ ; ]

Arguments

[ @dbname = ] N'dbname'

Az adatbázis neve, amelyet a szerverhez kell csatolni. @dbnamea sysname, alapértelmezett nélkül.

[ { @filename1 ... @filename16 } = ] { N'filename1' ... N'filename16' }

Egy adatbázis-fájl fizikai neve, beleértve az útvonalat is. Ez a paraméter nvarchar(260), alapértelmezett értéke NULL. Legfeljebb 16 fájlnevet is megadhatsz. A paraméternevek @filename1-vel kezdődnek, és @filename16-re nőnek. A fájlnévlistának legalább az elsődleges fájlt (.mdf). Az elsődleges fájl tartalmazza azokat a rendszertáblákat, amelyek az adatbázis többi fájljára mutatnak. A listának tartalmaznia kell azokat a fájlokat is, amelyeket az adatbázis leválasztása után áthelyeztek.

Ez a paraméter a mondalomtétel paraméterére CREATE DATABASE leképezhetőFILENAME. További információ: CREATE DATABASE.

Megjegyzés:

Amikor egy SQL Server 2005 (9.x) adatbázist, amely teljes szövegű katalógusfájlokat tartalmaz, egy újabb SQL Server verzióhoz csatolsz, a katalógusfájlok a korábbi helyükről kerülnek csatolásra, ahogy az SQL Server 2005 (9.x) verzióban is. További információért lásd: Frissítés Full-Text keresés.

Kódértékek visszaadása

0 (sikeres) vagy 1 (hiba).

Eredményhalmaz

Nincs.

Megjegyzések

A sp_attach_db tárolt eljárást csak olyan adatbázisokon kell végrehajtani, amelyeket korábban explicit sp_detach_db művelettel vagy másolt adatbázisokon kellett elválasztani az adatbázis szervertől. Ha több mint 16 fájlt kell megadnod, használd CREATE DATABASE <database_name> FOR ATTACH vagy CREATE DATABASE <database_name> FOR_ATTACH_REBUILD_LOG. További információ: CREATE DATABASE.

Bármely meg nem nevezett fájl feltételezhető, hogy az utolsó ismert helyén van. Ha egy fájlt más helyen szeretnél használni, meg kell határoznod az új helyet.

Az SQL Server újabb verziójával létrehozott adatbázis nem csatolható a korábbi verziókhoz.

Megjegyzés:

Egy adatbázis-pillanatképet nem lehet leválasztani vagy csatolni.

Amikor egy replikált adatbázist csatolsz, amelyet másoltak le, nem pedig leválasztott, vegyük figyelembe a következő feltételeket:

  • Ha az adatbázist ugyanahhoz a szerverpéldányhoz és verzióhoz csatolod, mint az eredeti adatbázis, további lépések nem szükségesek.

  • Ha ugyanahhoz a kiszolgálópéldányhoz, de frissített verzióval csatolja az adatbázist, a csatolási művelet befejezése után sp_vupgrade_replication kell végrehajtania a replikáció frissítéséhez.

  • Ha az adatbázist egy másik kiszolgálópéldányhoz csatolja, a verziótól függetlenül a csatolási művelet befejeződése után sp_removedbreplication kell végrehajtania a replikáció eltávolításához.

Amikor egy adatbázist először csatlakoztatnak vagy állítanak vissza egy új SQL Server példányhoz, az adatbázis mesterkulcs (DMK) másolata – amelyet a szolgáltatásmester kulcs (SMK) titkosít – még nem tárolja a szerveren. A kijelentést kell használnod OPEN MASTER KEY a DMK dekódolásához. Miután a DMK lefejtett, lehetőséged van a jövőben automatikus visszafejtést, ha a ALTER MASTER KEY REGENERATE kijelentés segítségével a szervernek megkap a DMK másolatát, amelyet az SMK-val titkosított. Amikor egy adatbázist frissítenek egy korábbi verzióról, a DMK-t újra kell generálni, hogy az újabb AES algoritmust használja. További információ a DMK újragenerálásáról: ALTER MASTER KEY. A DMK-kulcs AES-re való frissítéséhez szükséges idő a DMK által védett objektumok számától függ. A DMK-kulcs újragenerálása az AES-re való frissítéshez csak egyszer szükséges, és nincs hatással a jövőbeli regenerációkra a kulcsforgatási stratégia részeként.

Permissions

Az adatbázis csatolásakor a jogosultságok kezeléséről információért lásd a ADATBÁZIS LÉTREHOZÁSÁT.

Példák

A következő példa a jelenlegi szerverhez tartozó fájlokat AdventureWorks2025 csatolja.

EXECUTE sp_attach_db
    @dbname = N'AdventureWorks2022',
    @filename1 = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_Data.mdf',
    @filename2 = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_log.ldf';