Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Leválaszt egy jelenleg nem használt adatbázist szerver példányból, és opcionálisan minden táblán fut UPDATE STATISTICS le, mielőtt leválasztaná.
Ahhoz, hogy egy replikált adatbázist leválasszon, annak nem kell kiadni. További információért lásd a cikk későbbi részének megjegyzéseit .
Transact-SQL szintaxis konvenciók
Szemantika
sp_detach_db
[ [ @dbname = ] N'dbname' ]
[ , [ @skipchecks = ] N'skipchecks' ]
[ , [ @keepfulltextindexfile = ] N'keepfulltextindexfile' ]
[ ; ]
Arguments
[ @dbname = ] N'dbname'
A leválasztandó adatbázis neve.
[ @skipchecks = ] N'skipchecks'
Megadja, hogy átugorja-e vagy futtatja UPDATE STATISTICS-et.
@skipchecksnvarchar(10), alapértelmezett értéke NULL. A kiugráshoz UPDATE STATISTICS, megadjuk true. Hogy explicit módon futhassuk UPDATE STATISTICS, megadjuk false.
Alapértelmezés UPDATE STATISTICS szerint a táblázatokban és indexekben található adatok frissítésére történik. A teljesítmény UPDATE STATISTICS hasznos olyan adatbázisok esetén, amelyeket csak olvasható médiára kell áthelyezni.
[ @keepfulltextindexfile = ] N'keepfulltextindexfile'
Megadja, hogy a leválasztandó adatbázishoz tartozó teljes szövegű indexfájl ne essen el az adatbázis leválasztási művelet során.
@keepfulltextindexfilenvarchar(10), alapértelmezett értéke true.
- Ha @keepfulltextindexfile
false, az adatbázishoz tartozó teljes szöveges indexfájl és a teljes szöveges index metaadatai elmaradnak, kivéve, ha az adatbázis csak olvasható. - Ha
NULLvagytrue, teljes szöveggel kapcsolatos metaadatokat őrizünk.
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.
Kódértékek visszaadása
0 (sikeres) vagy 1 (hiba).
Eredményhalmaz
Nincs.
Megjegyzések
Amikor egy adatbázist eltávolítanak, az összes metaadat eltűnik. Ha az adatbázis az alapértelmezett adatbázis bármely bejelentkezési fióknál, master akkor az alapértelmezett adatbázisuk lesz.
Megjegyzés:
A bejelentkezési fiókok alapértelmezett adatbázisának megtekintéséről a sp_helplogins megtekintéséért lásd a . Ha megvannak a szükséges jogosultságok, használhatod az ALTER LOGIN-t , hogy új alapértelmezett adatbázist rendelj be egy bejelentkezéshez.
Korlátozások
Egy adatbázis nem lehet elválasztani, ha az alábbiak közül bármelyik igaz:
Az adatbázis jelenleg használatban van. További információért lásd: Szerezzen exkluzív hozzáférést.
Ha replikálják, az adatbázis publikál.
Mielőtt leválasztanád az adatbázist, le kell tiltanod a publikálást a sp_replicationdboption futtatásával.
Ha nem tudod használni
sp_replicationdboption, akkor eltávolíthatod a replikációt sp_removedbreplication futtatásával.Az adatbázisban létezik egy adatbázis pillanatkép.
Mielőtt leválasztanád az adatbázist, el kell dobnod az összes pillanatképet. További információért lásd: Drop a Database Snapshot.
Egy adatbázis-pillanatképet nem lehet leválasztani vagy csatolni.
Az adatbázist tükrözik.
Az adatbázist nem lehet leválasztani, amíg az adatbázis tükröző szekció le nem fejeződik. További információért lásd: Adatbázis tükrözés eltávolítása (SQL Server).
Az adatbázis gyanús.
A gyanús adatbázist vészhelyzetbe kell helyezni, mielőtt leválaszthatnád az adatbázist. További információért az adatbázis vészhelyzeti módba állításáról lásd: ALTER DATABASE.
Az adatbázis egy rendszeradatbázis.
Szerezz exkluzív hozzáférést
Egy adatbázis leválasztása kizárólagos hozzáférést igényel az adatbázishoz. Ha a leválasztani kívánt adatbázis használatban van, mielőtt leválaszthatnád, állítsd be az adatbázist módra SINGLE_USER , hogy exkluzív hozzáférést kapj.
Mielőtt beállítanád az adatbázist SINGLE_USER, ellenőrizd, hogy az AUTO_UPDATE_STATISTICS_ASYNC opció be van állítva.OFF Ha ez az opció , ONa statisztikák frissítésére használt háttérszál kapcsolatot vesz az adatbázissal, és egyetlen felhasználó módban nem lehet hozzáférni az adatbázishoz. További információ: Adatbázis beállítása egyfelhasználós üzemmódra.
Például az alábbi ALTER DATABASE állítás exkluzív hozzáférést biztosít az AdventureWorks2025 adatbázishoz, miután minden jelenlegi felhasználó lekapcsolja az adatbázist.
USE master;
ALTER DATABASE AdventureWorks2022
SET SINGLE_USER;
GO
Ahhoz, hogy a jelenlegi felhasználók azonnal vagy meghatározott másodpercen belül kikerüljenek az adatbázisból, használhatod ezt ROLLBACK az opciót is.
ALTER DATABASE <database_name>
SET SINGLE_USER
WITH ROLLBACK <rollback_option>;
További információkért lásd: ALTER DATABASE.
Újracsatolni egy adatbázist
A leválasztott fájlok megmaradnak, és visszacsatolhatók az or CREATE DATABASE opcióval FOR ATTACH (az vagy FOR ATTACH_REBUILD_LOG opcióval). A fájlokat át lehet helyezni egy másik szerverre, és odacsatolni lehet.
Permissions
Tagságot követel a rendszergazdi fix szerver szerepében vagy az adatbázis db_owner szerepében.
Példák
A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.
A következő példa leválasztja az AdventureWorks2025 adatbázist, @skipchecks beállítása .true
EXECUTE sp_detach_db 'AdventureWorks2022', 'true';
A következő példa leválasztja az AdventureWorks2025 adatbázist, és megőrzi a teljes szöveges indexfájlokat és a teljes szöveges index metaadatait. Ez a parancs a UPDATE STATISTICS (FRISSÍT STATISTICS) rendszert futtatja, ami az alapértelmezett viselkedés.
EXECUTE sp_detach_db
@dbname = 'AdventureWorks2022',
@keepfulltextindexfile = 'true';