Aracılığıyla paylaş


sp_detach_db (Transact-SQL)

Şu anda bir sunucu örnekten kullanımda değil ve isteğe bağlı olarak, güncelleştirme istatistikleri ayırma önce tüm tabloları üzerinde çalışan bir veritabanını ayırır.

Important noteImportant Note:

Bir yinelenmiş veritabanı için ayrılmış olarak yayımlanmamış olmalıdır.Daha fazla bilgi için bu konunun ilerleyen bölümlerindeki "Uyarılar" bölümüne bakın.

Topic link iconTransact-SQL sözdizimi kuralları

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

Bağımsız değişkenler

  • [ @dbname = ] 'database_name'
    Is the name of the database to be detached.database_name is a sysname value, with a default value of NULL.

  • [ @skipchecks = ] 'skipchecks'
    Specifies whether to skip or run UPDATE STATISTIC.skipchecks is a nvarchar(10) value, with a default value of NULL.güncelleştirme istatistikleri atlamak için , belirtin true. Açıkça güncelleştirme istatistikleri çalıştırmak için , belirtin false.

    Varsayılan olarak, güncelleştirme istatistikleri tablolarındaki verilere hakkındaki bilgileri güncelleştirmek için gerçekleştirilen ve bulunan dizinler SQL Server 2005 Database Engine ve sonraki sürümleri. güncelleştirme istatistikleri gerçekleştirme, salt okunur medyayı taşınacak olan veritabanları için yararlıdır.

  • [ @keepfulltextindexfile= ] 'KeepFulltextIndexFile'
    Specifies that the full-text index file associated with the database that is being detached will not be dropped during the database detach operation.KeepFulltextIndexFile is a nvarchar(10) value with a default of true.If KeepFulltextIndexFile olan false, tam metin dizin dosyaları veritabanıyla ilişkili ve meta veriler, tam metin dizini bırakıldı, sürece, veritabanı salt okunur özelliklidir. null ise veya true, tam metin meta veriler tutulur ilgili.

    Important noteImportant Note:

    This feature will be removed in a future version of Microsoft SQL Server. Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Sonuç Kümeleri

None

Remarks

Bir veritabanı ilişkisi kesildi, tüm meta veriler bırakılır.Veritabanı ise herhangi bir oturum açma hesabı, varsayılan veritabanı Yönetici kendi varsayılan veritabanını olur.

Not

Varsayılan veritabanı oturum açma hesabı'nı görüntüleme hakkında daha fazla bilgi için bkz: sp_helplogins (Transact-SQL). Gerekli izinleriniz varsa, kullanabileceğiniz OTURUM AÇMA DEĞİŞTİRME varsayılan yeni bir veritabanı için bir oturum atamak için.

Kısıtlamalar

Ilişkisi herhangi biri doğruysa, BIR veritabanı kesildi yapamazsınız:

  • Veritabanı şu anda kullanımda.Daha fazla bilgi için bu konuda daha sonra "Alma özel kullanım erişimi", "konusuna bakın.

  • Yinelenmiş, veritabanı yayımlanır.

    Veritabanının bağlantısını kesin önce yayımlamayı devre dışı çalıştırarak bırakmanız gerekir sp_replicationdboption.

    Not

    Kullanamıyorsanız sp_replicationdboption çalıştırarak çoğaltma kaldırabilirsinizsp_removedbreplication.

  • veritabanı anlık görüntü görüntü görüntü görüntüsü veritabanında yok.

    Veritabanının bağlantısını kesin önce tüm, anlık görüntüleri bırakma gerekir.Daha fazla bilgi için bkz:Nasıl Yapılır: Bir veritabanı anında (Transact-SQL) bırakın..

    Not

    veritabanı anlık görüntü görüntü görüntü görüntüsü ilişkisi kesildi bağlı veya.

  • Veritabanı yansıtılır.

    Ilişkisi oturum veritabanı yansıtması durduruluncaya kadar veritabanı kesildi edemiyor.Daha fazla bilgi için bkz:veritabanı yansıtması kaldırma.

  • Şüpheli veritabanıdır.

    Içinde SQL Server 2005 ve veritabanı ayırmadan önce daha ileri sürümlerinde, şüpheli bir veritabanı Acil moduna koymak gerekir. Bir veritabanı Acil moduna geçirmek hakkında daha fazla bilgi için bkz: ALTER DATABASE Transact-SQL).

  • Veritabanı sistemi bir veritabanıdır.

Özel erişim elde etme

Veritabanı ayırma, veritabanını özel kullanım erişimi gerektirir.Bunu ayırmadan önce ayırmak istediğiniz veritabanını, kullanımdaysa, veritabanını özel erişim edinmek için SINGLE_USER moda ayarlayın.

Örneğin, aşağıdaki ALTER DATABASE öncelikli erişim sağlayamadığından bildirimi alır AdventureWorks tüm geçerli kullanıcıların veritabanı bağlantısını kestikten sonra veritabanı.

USE master;
ALTER DATABASE AdventureWorks
SET SINGLE_USER;
GO

Not

Geçerli zorlamak için kullanıcıların veritabanından hemen veya belirtilen sayıda saniye içinde de ROLLBACK seçeneğini kullanın: ALTER DATABASE veritabanı_adı ROLLBACK SINGLE_USER kümerollback_option.Daha fazla bilgi için bkz:ALTER DATABASE Transact-SQL).

Bir veritabanı reattaching

Ayrılmış dosyalar olarak kalır ve (FOR ATTACH veya FOR ATTACH_REBUILD_LOG seçeneği ile) CREATE DATABASE kullanarak reattached.Dosyaları başka bir sunucuya taşınmasına ve orada bağlı.

İzinler

Üyelik gerektirir db_owner sabit veritabanı rolü.

Örnekler

Aşağıdaki örnek ayırır AdventureWorks veritabanı ile skipchecks true olarak küme.

EXEC sp_detach_db 'AdventureWorks', 'true';

Aşağıdaki örnek ayırır AdventureWorks Veritabanı ve Tutar tam metin dizin dosyalarını ve tam metin dizin meta veriler. Bu komut, varsayılan davranıştır, güncelleştirme istatistikleri, çalıştırır.

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