sp_detach_db (Transact-SQL)

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

Önemli notÖnemli

Ayrılmış olması bir çoğaltılmış veritabanı için yayımlanmamış olmalıdır.Daha fazla bilgi için "Uyarılar" konusuna bakın. daha sonra bu bölümde.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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

Bağımsız değişkenler

  • [ @ dbname = ] 'database_name'
    Ayrılmış olması için veritabanı adıdır.database_nameolan bir sysname değeri, varsayılan değeri null.

  • [ @ Atla = ] 'skipchecks'
    Atlamak veya güncelleştirme İSTATİSTİKLERİ çalıştırmak belirtir.skipchecksolan bir nvarchar(10) değeri, varsayılan değeri null.update STATISTICS atlamak belirtmek true.update STATISTICS açıkça çalıştırmak için belirtmek false.

    Varsayılan değer olarak, güncelleştirme İSTATİSTİKLERİ tablolardaki verileri hakkındaki bilgileri güncelleştirmek için gerçekleştirilen ve dizinler SQL Server 2005 Veritabanı Altyapısı ve sonraki sürümleri.update STATISTICS gerçekleştirmek için salt okunur medya taşınacak olan veritabanları için yararlıdır.

  • [ @ keepfulltextindexfile= ] 'KeepFulltextIndexFile'
    Ayrılmadan veritabanı ile ilişkili tam metin dizini dosyası veritabanı sırasında atılan değil belirtir işlem Ayır.KeepFulltextIndexFileolan bir nvarchar(10) değeri varsayılan değer true.KeepFulltextIndexFile Olan false, tüm tam metin dizin dosyaları veritabanı ile ilişkili ve tam metin dizin meta veriler bırakılır, veritabanı salt okunur olmadıkça.null ise veya true, tam metin ilgili meta veriler tutulur.

    Önemli notÖnemli

    @ Keepfulltextindexfile parametresi, gelecekteki bir sürüm kaldırılır SQL Server.Değil yeni geliştirme çalışması bu parametreyi kullanın ve şu anda bu parametre olabildiğince çabuk kullanan uygulamalar değiştirin.

Dönüş Kodu Değerleri

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

Sonuç Kümeleri

Hiçbiri

Açıklamalar

Bir veritabanı bağlantısı kesilen, tüm kendi meta veriler bırakılır.varsayılan veritabanı herhangi bir oturum açma hesabı veritabanı ise ana kendi varsayılan veritabanıolur.

Not

' % S'veritabanı varsayılan veritabanı oturum açma hesapları görüntüleme hakkında daha fazla bilgi için bkz: sp_helplogins'i (Transact-SQL).Gerekli izinleriniz varsa, kullanabileceğiniz alter LOGIN varsayılan veritabanı yeni bir oturum atamak.

Kısıtlamalar

Aşağıdakilerden biri doğruysa, bir veritabanı ilişkisi kesildi yapamazsınız:

  • Veritabanı şu anda kullanımda.Daha fazla bilgi için bkz: "Özel erişim elde etme" Bu konuda daha sonra.

  • Veritabanı çoğaltılmış, yayımlanır.

    Bir veritabanını ayırmadan önce yayımlamayı devre çalıştırarak dışı gerekir sp_replicationdboption.

    Not

    Kullanamazsa, sp_replicationdboption, çoğaltma çalıştırarak kaldırmak sp_removedbreplication.

  • veritabanı anlık görüntüsü veritabanı üzerinde bulunmaktadır.

    Bir veritabanını ayırmadan önce tüm onun anlık bırakma gerekir.Daha fazla bilgi için, bkz. Nasıl yapılır: Veritabanı Snapshot (Transact-sql) bırak.

    Not

    veritabanı anlık görüntüsü iliştirilemez ya da olamaz.

  • Veritabanı ikizlenmektedir.

    veritabanı yansıtmasıoturum sona kadar veritabanı ilişkisi kesildi olamaz. Daha fazla bilgi için, bkz. Veritabanı yansıtma kaldırma.

  • Veritabanı şüphelidir.

    İçinde SQL Server 2005 ve sonraki sürümleri, gerekir şüpheli bir veritabanı Acil moduna önce kalıbından veritabanı.Acil moduna veritabanı hakkında daha fazla bilgi için bkz: ALTER DATABASE (Transact-SQL).

  • Sistem Veritabanı veritabanıdır.

Özel erişim elde etme

Bir veritabanını ayırmak için veritabanına özel kullanım erişimi gerektirir.Önce kaldırmak istediğiniz veritabanı kullanılıyorsa, bunu küme veritabanı SINGLE_USER moda özel erişim edinmek için ayırabilirsiniz.

Örneğin, aşağıdaki ALTER DATABASE deyim alır özel kullanım erişimi AdventureWorks2008R2 veritabanı sonra tüm geçerli kullanıcıların bağlantısını veritabanı.

USE master;
ALTER DATABASE AdventureWorks2008R2
SET SINGLE_USER;
GO

Not

Geçerli veritabanından hemen zorlama veya belirtilen saniye sayısı içinde geri alma seçeneğini de kullanmanız için: alter database veritabanı_adı set SINGLE_USER ile rollback rollback_option.Daha fazla bilgi için, bkz. ALTER DATABASE (Transact-SQL).

Bir veritabanı yeniden takmanız

Ayrılmış dosyalar kalır ve (veritabanı oluşturma for attach veya için ATTACH_REBUILD_LOG seçeneği) kullanılarak yeniden eklendiğinde.Dosyalar başka bir sunucuya taşınması ve orada bağlı.

İzinler

Üyelik gerektiren db_owner veritabanı rolüsabit.

Örnekler

Aşağıdaki örnek ucun AdventureWorks2008R2 veritabanı ile skipchecks küme için true.

EXEC sp_detach_db 'AdventureWorks2008R2', 'true';

Aşağıdaki örnek ucun AdventureWorks2008R2 veritabanı ve tam metin dizin dosyaları ve tam metin dizini meta veriler korurBu komut, varsayılan davranış olduğu update STATISTICS çalışır.

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