sp_attach_db (Transact-SQL)
Bir veritabanını bir sunucu ekler.
Ö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_name for attach yerine.Daha fazla bilgi için, bkz. Veritabanı (Transact-SQL) oluştur. |
Not
Bir veya daha yeni bir konum varsa, birden çok günlük dosyasını yeniden oluşturmak için create database kullanmak database_name için ATTACH_REBUILD_LOG.
Güvenlik Notu |
---|
Eklediğiniz değil veya bilinmeyen veya güvenilmeyen kaynaklardan gelen veritabanlarını geri yükleme öneririz.Bu tür veritabanlarının yürütmek istenmeyen olabilir kötü niyetli kod içerebilecek Transact-SQL kod veya şema veya fiziksel veritabanı yapısıdeğiştirerek hatalara neden.Bilinmeyen veya güvenilmeyen bir kaynakveritabanından kullanmadan önce çalıştırmak dbcc checkdb bir benzerini sunucusundaki veritabanında ve ayrıca saklı yordamlar veya veritabanındaki diğer kullanıcı tanımlı kod gibi bir kodu inceleyin. |
Sözdizimi
sp_attach_db [ @dbname= ] 'dbname'
, [ @filename1= ] 'filename_n' [ ,...16 ]
Bağımsız değişkenler
[ @ dbname = ] **'**dbnam '
Veritabanı sunucusuna bağlı adıdır.Adı benzersiz olmalıdır.dbnameİş sysname, varsayılan değer null.[ @ dosyaadı1 = ] 'filename_n'
fiziksel ad, bir veritabanı dosyasıdahil yoladıdır.filename_nİş nvarchar(260), varsayılan değer null.En çok 16 dosya adları belirtilebilir.Parametre adları başlangıç @ dosyaadı1 ve artırmak için @ filename16.Dosya adı listesinde, en azından birincil dosya içermelidir.Birincil dosya veritabanındaki diğer dosyaların üzerine sistem tabloları içerir.Veritabanı ilişkisi kesildi sonra taşınan dosyaların listesi de içermelidir.Not
Bu bağımsız değişken create database deyimdosyaadı parametresi için eşleştirir.Daha fazla bilgi için, bkz. Veritabanı (Transact-SQL) oluştur.
Bağladığınızda bir SQL Server 2005 tam metin kataloğu içeren veritabanı dosyalarının üzerine bir SQL Server 2008 R2 sunucu örnek, katalog dosyaları ile birlikte diğer veritabanı önceki konumlarından ekli dosyaları, aynı SQL Server 2005.Daha fazla bilgi için, bkz. 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üldü veritabanı sunucusundan bir açık kullanarak önceden ayrılır veritabanları üzerinde sp_detach_db işlem veya kopyalanan veritabanları üzerinde. 16'dan fazla dosya belirtmek varsa, create database kullanmak database_name for attach veya create database database_name FOR_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 konumda kullanmak için yeni konumu belirtmeniz gerekir.
Daha yeni, bir sürüm ile oluşturulmuş bir veritabanını SQL Server eklenemez önceki sürümleri.
Not
veritabanı anlık görüntüsü iliştirilemez ya da olamaz.
Ayrılır yerine kopyalanan çoğaltılmış veritabanı iliştirdiğinizde, aşağıdakileri göz önünde bulundurun:
Veritabanını aynı sunucu örnek ve sürüm özgün veritabanı olarak iliştirirseniz, hiçbir ek adımlar gereklidir.
Veritabanını aynı sunucu örnek iliştirin, ancak bir yükseltilmiş sürüm yürütmekgerekirsp_vupgrade_replication Ekle işlemi tamamlandıktan sonra çoğaltma yükseltmek için.
Veritabanını farklı bir sunucu örnek, bir sürümne olursa olsun eklemek, yürütmekgerekirsp_removedbreplication çoğaltma Ekle işlemi tamamlandıktan sonra kaldırılacak.
kaynak veritabanının en az olmalıdır sürüm 80 (SQL Server 2000) eklemek için SQL Server 2008 R2, SQL Server 2008.SQL Server 2000veya SQL Server 2005 bir uyumluluk düzey küçüktür 80 olan veritabanları küme için Uyumluluk takılı olduğunda 80 olacak.
İ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 AdventureWorks2008R2 için geçerli bir sunucu.
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';