sp_attach_db (języka Transact-SQL)

Służy do dołączania bazy danych na serwerze.

Ważna informacjaWażne:

Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.Zaleca się używania bazy danych utworzyć database_name DOŁĄCZAĆ zamiast.Aby uzyskać więcej informacji, zobacz Tworzenie bazy danych (Transact-SQL).

Ostrzeżenie

Aby odbudować wiele plików dziennika, gdy jeden lub więcej nowych lokalizacji, użyj tworzenie bazy danych database_name do ATTACH_REBUILD_LOG.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Zaleca się, że nie należy podłączać lub przywracanie bazy danych z nieznanych lub niezaufanych źródeł.Takie bazy danych może zawierać złośliwy kod, który może być wykonać niezamierzone Transact-SQL Kod lub powodować błędy przez zmodyfikowanie schematu lub fizycznej struktura bazy danych.Przed użyciem bazy danych z nieznanych lub niezaufanych źródłouruchomić dbcc checkdb w bazie danych na serwerze Nieprodukcyjne i również sprawdzić kod, takie jak procedury przechowywane lub inny kod zdefiniowany przez użytkownika w bazie danych.

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

Składnia

sp_attach_db [ @dbname= ] 'dbname'
    , [ @filename1= ] 'filename_n' [ ,...16 ] 

Argumenty

  • [ @ dbname = ] **'**dbnam "
    Jest to nazwa bazy danych do serwera.Nazwa musi być unikatowa.dbnamejest sysname, domyślna wartość NULL.

  • [ @ nazwa_pliku1 = ] 'filename_n"
    Jest to nazwa fizyczna, włączając ścieżka plik bazy danych.filename_njest nvarchar(260), domyślna wartość NULL.Do 16 pliku można określić nazwy.Nazwy parametrów uruchamiania w @ nazwa_pliku1 i zwiększać do @ filename16.Na liście Nazwa pliku musi zawierać co najmniej pliku podstawowego.Podstawowy plik zawiera tabele systemowe wskaż innych plików w bazie danych.Wykaz musi zawierać również wszystkie pliki, które zostały przeniesione po bazy danych został odłączony.

    Ostrzeżenie

    Argument ten jest mapowany na parametr FILENAME tworzenia bazy danych instrukcja.Aby uzyskać więcej informacji, zobacz Tworzenie bazy danych (Transact-SQL).

    Po dołączeniu SQL Server 2005 pliki bazy danych, zawierający wykaz pełnotekstowy na SQL Server 2008 R2 plików serwera wystąpienie, wykaz, które pliki są dołączone z poprzedniej lokalizacji wraz z innej bazy danych, takie same, jak w SQL Server 2005.Aby uzyskać więcej informacji, zobacz Uaktualnienie wyszukiwania pełnotekstowego.

Wartości kodów powrotnych

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

Zestawy wyników

Brak

Uwagi

Sp_attach_db procedura składowana powinny być wykonane tylko w bazach danych, które zostały wcześniej odłączone od serwera bazy danych przy użyciu jawne sp_detach_db operacji lub w bazach danych. Jeśli trzeba określić więcej niż 16 pliki za pomocą tworzenie bazy danych database_name DOŁĄCZAĆ lub utwórz bazę danych database_name FOR_ATTACH_REBUILD_LOG.Aby uzyskać więcej informacji, zobacz Tworzenie bazy danych (Transact-SQL).

Dowolny plik nieokreślony zakłada, że w jego ostatniej znanej lokalizacji.Aby użyć pliku w innej lokalizacji, należy określić nową lokalizację.

Baza danych utworzona w nowszej wersja programu SQL Server nie można dołączyć w starszej wersji.

Ostrzeżenie

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

Po dołączeniu zreplikowanej bazy danych, które zostały skopiowane zamiast są odłączone, należy rozważyć następujące kwestie:

  • Dołączyć bazy danych do tego samego serwera wystąpienie i wersja pierwotnej bazy danych, wymagane są żadne dodatkowe czynności.

  • Jeśli dołączysz do tego samego serwera wystąpienie bazy danych, ale z uaktualnionej wersja, należy wykonać sp_vupgrade_replication do uaktualnienia replikacja , po zakończeniu operacji Dołącz.

  • Możesz dołączyć do innego serwera wystąpienie, niezależnie od wersjabazy danych należy wykonać sp_removedbreplication do usunięcia replikacja , po zakończeniu operacji Dołącz.

źródło baza danych musi wynosić co najmniej wersja 80 (SQL Server 2000) do dołączenia do SQL Server 2008 R2, SQL Server 2008.SQL Server 2000lub SQL Server 2005 baz danych, których zgodność poziom mniej niż 80 będą zestaw zgodności 80 po podłączeniu.

Uprawnienia

Aby uzyskać informacje dotyczące sposobu uprawnienia są obsługiwane, gdy baza danych jest dołączony, zobacz Tworzenie bazy danych (Transact-SQL).

Przykłady

Poniższy przykład dołącza pliki z AdventureWorks2008R2 do bieżącego serwera.

EXEC sp_attach_db @dbname = N'AdventureWorks2008R2', 
    @filename1 = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\AdventureWorks2008R2_Data.mdf', 
    @filename2 = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\AdventureWorks2008R2_log.ldf';