Share via


sp_attach_db (Transact-SQL)

Bir veritabanı için bir sunucu ekler.

Important noteImportant Note:

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. CREATE DATABASE kullanmanızı öneririz database_name ATTACH IÇIN bunun yerine. Daha fazla bilgi için bkz: DATABASE (Transact-SQL) CREATE.

Not

Yeni bir konuma, bir veya daha fazla varsa, birden çok günlük dosyasını yeniden oluşturmak için , CREATE DATABASE kullanın. database_name attach_rebuild_log İÇİN.

Security noteSecurity Note:

Değil iliştirin veya bilinmeyen veya güvenilmeyen kaynaklardan gelen veritabanlarını geri yükleme olmasını öneririz.Bu tür veritabanlarının yürütmek, kötü amaçlı kod içerebilir istenmeyen Transact-SQL şema veya fiziksel veritabanı yapısı değiştirerek kod veya neden hata. Bilinmeyen veya güvenilmeyen bir kaynaktan gelen bir veritabanı kullanmadan önce çalıştırın. dbcc checkdb nonproduction sunucusundaki veritabanında ve ayrıca ya da diğer kullanıcı tanımlı kod, veritabanında saklı yordamlar kodun sınayın.

Topic link iconTransact-SQL sözdizimi kuralları

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

Bağımsız değişkenler

  • [ @dbname= ] **'**dbnam '
    Sunucuya iliştirilecek veritabanı adıdır.The name must be unique.dbname is sysname, with a default of NULL.

  • [ @filename1= ] 'filename_n'
    Is the physical name, including path, of a database file.filename_n is nvarchar(260), with a default of NULL.En fazla 16 dosya adı belirtilebilir.Parametre adları başlangıcında @ dosyaadı1 ve için artırma**@ filename16**.Dosya adı listesinde en az birincil dosya olarak eklemelisiniz.Birincil dosya sistem tabloları diğer veritabanı dosyalarına işaret eden içerir.Liste, veritabanı ilişkisi kesildi sonra taşınan dosyalar da eklemeniz gerekir.

    Not

    Bu bağımsız değişkeni, CREATE DATABASE deyim DOSYAADı parametresi eşleştirir.Daha fazla bilgi için bkz: DATABASE (Transact-SQL) CREATE.

    Eklediğiniz zaman bir SQL Server 2005 tam metin kataloğu dosyalarını içeren veritabanı bir SQL Server 2008 sunucu örnek, dosyalar ile birlikte diğer veritabanı dosyaları, aynı önceki konumlarından ekli katalog SQL Server 2005. Daha fazla bilgi için bkz: tam metin araması yükseltme.

Dönüş Kodu Değerleri

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

Sonuç Kümeleri

None

Remarks

The sp_attach_db saklı yordam should only be executed on databases that were previously detached from the database server by using an explicit sp_detach_db operation or on copied databases.Bilgisayarınızda birden fazla 16 dosya belirtmek, CREATE DATABASE kullanın... database_name ATTACH veya CREATE DATABASE için database_name for_attach_rebuild_log. Daha fazla bilgi için bkz: DATABASE (Transact-SQL) CREATE.

Belirtilmeyen herhangi bir dosyayı son bilinen konumunda olduğu varsayılır.Farklı bir konumda bir dosya kullanmak için , yeni konumu belirtmeniz gerekir.

Daha yeni sürüm tarafından oluşturulmuş BIR veritabanı SQL Server önceki sürümlerde eklenemiyor.

Not

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

Yinelenmiş veritabanının ilişkisi kesildi yerine kopyalanan iliştirdiğinizde, aşağıdakileri göz önünde bulundurun:

  • Veritabanı sürüm özgün veritabanı olarak ve aynı sunucu örneğini eklerseniz, hiçbir ek işlem gereklidir.

  • Yükseltilmiş sürüm için aynı sunucu örnek ancak veritabanını iliştirirseniz, yürütmek gerekir sp_vupgrade_replication çoğaltma Ekle operasyondan sonraki yükseltmek için bu güvenlik açığından tamamlanır.

  • Veritabanı sürüm ne olursa olsun, farklı bir sunucu örneğinin iliştirirseniz yürütmelisiniz sp_removedbreplication çoğaltma Ekle işlemi sonra kaldırmak için bu güvenlik açığından tamamlanır.

The source database must be at least version 80 (SQL Server 2000) to attach to SQL Server 2008.SQL Server 2000 or SQL Server 2005 databases that have a compatibility level less than 80 will be set to compatibility 80 when attached.

İzinler

Bir veritabanı iliştirildiğinde izinlerinin nasıl işlendiğini hakkında daha fazla bilgi için bkz: DATABASE (Transact-SQL) CREATE.

Örnekler

Aşağıdaki örnek dosyaları ekler. AdventureWorks Geçerli sunucuya.

EXEC sp_attach_db @dbname = N'AdventureWorks', 
    @filename1 = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\AdventureWorks_Data.mdf', 
    @filename2 = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\AdventureWorks_log.ldf';