Aracılığıyla paylaş


sp_attach_db (Transact-sql)

Bir veritabanını bir sunucu ekler.

Önemli notÖnemli

Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.create database kullanmanızı öneririz database_namefor attach yerine. Daha fazla bilgi için, bkz. Veritabanı (Transact-sql) oluştur.

[!NOT]

Bir veya daha yeni bir konuma sahip birden çok günlük dosyasını yeniden oluşturmak için create database kullanmak database_namefor ATTACH_REBUILD_LOG.

Güvenlik notuGüvenlik Notu

Sen değil eklemek veya bilinmeyen veya güvenilmeyen kaynaklardan gelen veritabanlarını geri öneririz. Bu tür veritabanlarının idam kötü amaçlı kod içerebilir istenmeyen Transact-SQLkod veya şema veya fiziksel veritabanı yapısını değiştirerek hatalara neden. Bilinmeyen veya güvenilmeyen kaynağından veritabanı kullanmadan önce çalıştırmak dbcc checkdb bir benzerini sunucuda veritabanı ve saklı yordamlar veya veritabanındaki diğer kullanıcı tanımlı kod gibi bir kod da inceleyin.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

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

Bağımsız değişkenler

  • **@dbname='**dbnam '
    Sunucuya bağlı veritabanı adıdır. Adı benzersiz olmalıdır. dbnameise sysname, null varsayılan.

  • @ dosyaadı1 ='filename_n'
    Fiziksel dahil yolu, veritabanı dosyasının adıdır. filename_nise nvarchar(260), null varsayılan. Kadar 16 dosya adları belirtilebilir. Parametre adları başlar @ dosyaadı1 ve artırmak için @ filename16. Dosya adı listesinde, en azından birincil dosya içermelidir. Birincil dosya sistem tabloları diğer veritabanı dosyalarına işaret içerir. Liste, sonra veritabanını müstakil taşınan dosyalar de içermelidir.

    [!NOT]

    Bu argüman, create database deyimi DosyaAdı parametresi için eşleştirir. Daha fazla bilgi için, bkz. Veritabanı (Transact-sql) oluştur.

    Ne zaman sen eklemek a SQL Server 2005tam metin kataloğu dosyaları içeren veritabanı bir SQL Server 2012sunucu örneği, diğer veritabanı ile birlikte önceki konumlarından ekli dosyaları katalog dosyaları, aynı SQL Server 2005. Daha fazla bilgi için, bkz. SQL Server 2005 tam metin arama yükseltme.

Dönüş Kodu Değerleri

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

Sonuç Kümeleri

Hiçbiri

Açıklamalar

Sp_attach_db saklı yordam yalnızca yürütülen önceden veritabanı sunucusundan müstakil açık bir kullanarak veritabanlarını sp_detach_db işlem veya üzerinde veritabanlarını kopyalanmış. Eğer sen-si olmak-e 16'dan fazla dosya belirtmek, create database kullanmak database_namefor ILIŞTIRIN veya create database database_nameFOR_ATTACH_REBUILD_LOG. Daha fazla bilgi için, bkz. Veritabanı (Transact-sql) oluştur.

Belirtilmeyen herhangi bir dosyayı son bilinen konumunda olduğu varsayılır. Bir dosyayı farklı bir konuma kullanmak için yeni bir konum belirtmeniz gerekir.

Daha yeni bir sürümü tarafından oluşturulmuş bir veritabanı SQL Serverönceki sürümlerde iliştirilemez.

[!NOT]

Veritabanı anlık müstakil veya bağlı.

Müstakil yerine kopyalanan çoğaltılmış veritabanı iliştirdiğinizde, aşağıdakileri dikkate alın:

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

  • Veritabanını aynı sunucu örneğini ekleyebilirsiniz, ancak yükseltilmiş bir sürüm ile yürütme gerekir sp_vupgrade_replication Ekle işlemi tamamlandıktan sonra çoğaltma yükseltmek için.

  • Veritabanı sürümü ne olursa olsun, farklı sunucu örneği iliştirirseniz yürütme gerekir sp_removedbreplication çoğaltma Ekle işlemi tamamlandıktan sonra kaldırılacak.

Sadece SQL Server 2005ve daha sonraki veritabanları için eklenebilir SQL Server 2012. Veritabanı uyumluluk düzeyi 90'dan az ise, veritabanına bağlı olduğu zaman onun uyumluluk düzeyi en düşük seviyeye 90 değiştirilecek SQL Server 2012.

Ne zaman bir veritabanı ilk bağlı veya yeni bir örneği için geri SQL Server, veritabanı ana anahtarı (hizmet ana anahtar tarafından şifrelenmiş) bir kopyası sunucuda henüz saklanmaz. Veritabanı asıl anahtarının (DMK) şifresini çözmek için OPEN MASTER KEY deyimini kullanmalısınız. DMK'nın şifresi çözüldükten sonra, sunucuya DMK'nın hizmet asıl anahtarı (SMK) ile şifrelenmiş bir kopyasını sağlamak üzere gelecekte ALTER MASTER KEY REGENERATE deyimini kullanarak otomatik şifre çözmeyi etkinleştirme seçeneğiniz bulunur. Bir veritabanı daha önceki bir sürümden yükseltildiğinde, daha yeni AES algoritmasını kullanmak üzere DMK'nın yeniden üretilmesi gerekir. DMK'yı yeniden üretme hakkında daha fazla bilgi için, bkz. alter MASTER KEY (Transact-sql). AES'ye yükseltmek üzere DMK anahtarını yeniden üretmek için gereken zaman, DMK tarafından korunan nesnelerin sayısına bağlıdır. DMK anahtarının AES'ye yükseltmek üzere yalnızca bir kez yeniden üretilmesi gerekir ve bunun anahtar dönüşüm stratejisinin bir parçası olarak gelecekte yapılacak yeniden üretmeler üzerinde hiçbir etkisi yoktur.

İzinler

Bir veritabanı iliştirildiğinde, izinleri işlenme hakkında daha fazla bilgi için bkz: Veritabanı (Transact-sql) oluştur.

Örnekler

Aşağıdaki örnek dosyaları ekler AdventureWorks2012 geçerli sunucu için.

EXEC sp_attach_db @dbname = N'AdventureWorks2012', 
    @filename1 = 
N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_Data.mdf', 
    @filename2 = 
N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_log.ldf';

EXEC sp_attach_db @dbname = N'AdventureWorks2012', 
    @filename1 = 
N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_Data.mdf', 
    @filename2 = 
N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_log.ldf';

Ayrıca bkz.

Başvuru

sp_detach_db (Transact-sql)

sp_helpfile (Transact-sql)

sp_removedbreplication (Transact-sql)

Sistem saklı yordamları (Transact-sql)

Kavramlar

Veritabanı bağlantısını kesin ve (SQL Server) iliştirme