sp_detach_db (języka Transact-SQL)

Odłącza bazę danych, która nie jest obecnie używany z serwerem wystąpienie i opcjonalnie uruchamia aktualizacji statystyk na wszystkie tabele przed odłączanie.

Ważna informacjaWażne:

Dla zreplikowanej bazy danych jest odłączony musi być nieopublikowanych.Aby uzyskać więcej informacji zobacz temat "Uwagi" sekcja w dalszej części tego tematu.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

sp_detach_db [ @dbname= ] 'database_name' 
    [ , [ @skipchecks= ] 'skipchecks' ] 
    [ , [ @keepfulltextindexfile = ] 'KeepFulltextIndexFile' ] 

Argumenty

  • [ @ dbname = ] 'database_name"
    Jest to nazwa bazy danych jest odłączony.database_namejest sysname wartość domyślną wartość NULL.

  • [ @ włączonej = ] 'skipchecks"
    Określa, czy pomijać lub uruchomienie aktualizacji statystyki.skipchecksjest nvarchar(10) wartość domyślną wartość NULL.Aby pominąć aktualizacji statystyk, należy określić true.Aby uruchomić AKTUALIZACJĘ statystyki, należy określić false.

    Domyślnie aktualizacji statystyk jest wykonywane, aby zaktualizować informacje o danych w tabelach i indeksy w Aparat baz danych programu SQL Server 2005 i nowsze wersje.Wykonywanie aktualizacji statystyk jest przydatne w przypadku baz danych, które mają być przeniesione na nośniku tylko do odczytu.

  • [ @ keepfulltextindexfile= ] 'KeepFulltextIndexFile"
    Określa, że podczas bazy danych nie zostanie usunięty plik indeksu pełnotekstowego skojarzony z bazy danych, która jest jest odłączana odłączyć operacji.KeepFulltextIndexFilejest nvarchar(10) wartość domyślną true.Jeśli KeepFulltextIndexFile jest false, wszystkie pliki indeksu pełnotekstowego związanego z bazą danych i metadane indeksu pełnotekstowego są opuszczane, chyba że baza danych jest tylko do odczytu.Jeśli ma wartość NULL lub true, związanych z pełnego tekstu są zachowywane metadane .

    Ważna informacjaWażne:

    @ Keepfulltextindexfile parametr zostanie usunięty w przyszłej wersja programu SQL Server.Nie używać tego parametru w nowych prac rozwojowych i modyfikowania aplikacji, które aktualnie tego parametru należy używać możliwie najszybciej.

Wartości kodów powrotnych

0 (sukces) lub 1 (błąd)

Zestawy wyników

Brak

Uwagi

Gdy baza danych jest odłączana, wszystkie jego metadane jest odrzucany.Jeśli baza danych została domyślna baza danych , których wszelkie konta logowania wzorca staje się ich domyślna baza danych.

Ostrzeżenie

Aby uzyskać informacje dotyczące sposobu przeglądania domyślna baza danych , których wszystkie konta logowania, zobacz sp_helplogins (języka Transact-SQL).Jeśli masz wymagane uprawnienia, można użyć Logowania ZMIENIA do przypisania nowej domyślna baza danych do identyfikatora logowania.

Ograniczenia

Nie mogły być zdjęte bazy danych, jeśli spełniony jest dowolny z następujących czynności:

  • Baza danych jest obecnie używany.Aby uzyskać więcej informacji zobacz "Uzyskiwania wyłącznego dostępu" w dalszej części tego tematu.

  • Jeśli replikowane, jest publikowana w bazie danych.

    Przed odłączeniem bazy danych należy wyłączyć publikowanie, uruchamiając sp_replicationdboption.

    Ostrzeżenie

    Jeśli nie można używać sp_replicationdboption, replikacja można usunąć przez uruchomienie sp_removedbreplication.

  • migawka bazy danych istnieje w bazie danych.

    Przed odłączeniem bazy danych, należy upuścić, wszystkie jego migawek.Aby uzyskać więcej informacji, zobacz Jak Upuść migawkę bazy danych (Transact-SQL).

    Ostrzeżenie

    migawka bazy danych nie można odłączony lub dołączony.

  • Baza danych jest jest dublowany.

    Nie mogły być zdjęte bazy danych, dopóki nie dublowanie bazy danych sesja zostanie zakończona.Aby uzyskać więcej informacji, zobacz Usuwanie dublowania baz danych.

  • Baza danych jest podejrzana.

    W SQL Server 2005 i nowszych wersji, należy umieocić podejrzanych bazy danych do trybu awaryjnego, przed odłączeniem bazy danych.Aby uzyskać więcej informacji na temat umieścić bazę danych do trybu awaryjnego, zobacz ALTER DATABASE (Transact-SQL).

  • Baza danych jest bazą danych systemu.

Uzyskiwanie dostępu wyłącznego

Odłączanie bazy danych wymaga wyłącznego dostępu do bazy danych.Jeśli chcesz odłączyć bazy danych jest używany, zanim można odłączyć go zestaw bazy danych w trybie SINGLE_USER do uzyskiwania wyłącznego dostępu.

Na przykład, następujący ALTER DATABASE instrukcja uzyskiwania wyłącznego dostępu do AdventureWorks2008R2 bazy danych po rozłączeniu się wszystkich bieżących użytkowników bazy danych.

USE master;
ALTER DATABASE AdventureWorks2008R2
SET SINGLE_USER;
GO

Ostrzeżenie

Aby natychmiast wymusić bieżących użytkowników bazy danych lub w ciągu określonej liczby sekund, także użyć opcji WYCOFYWANIA: ZMIEŃ bazę danych nazwa_bazy_danych USTAWIĆ SINGLE_USER Z WYCOFYWANIA rollback_option.Aby uzyskać więcej informacji, zobacz ALTER DATABASE (Transact-SQL).

Podłączenie bazy danych

Odłącza pliki pozostają i może zostać ponownie nałożona za pomocą tworzenie bazy danych (z opcją DOŁĄCZAĆ lub dla ATTACH_REBUILD_LOG).Plików może być przeniesione na inny serwer i tam dołączona.

Uprawnienia

Wymaga członkostwa w db_owner rola bazy danychstałej.

Przykłady

Poniższy przykład odłącza AdventureWorks2008R2 bazy danych z skipchecks zestaw na true.

EXEC sp_detach_db 'AdventureWorks2008R2', 'true';

Poniższy przykład odłącza AdventureWorks2008R2 bazy danych i zachowuje pliki indeksu pełnotekstowego i metadane indeksu pełnotekstowego.To polecenie uruchamia aktualizacji statystyk, co jest zachowaniem domyślnym.

exec sp_detach_db @dbname='AdventureWorks2008R2'
    , @keepfulltextindexfile='true';