2009-03-03 9 views
0

Bunu yapmanın en iyi yolu nedir? Bazı INSERT ifadeleri bulduk, ancak hepsi sadece iç veritabanı kopyalama için çalışıyor gibi görünüyor.Verileri uzak bir MSSQL tablosunda yerel bir Tabloya kopyalamak mümkün mü?

Benim yorumuyla: Henüz MSSQL ile çok akıcı değilim

INSERT INTO [PROGRAM003].[dbo].[faq] 
    ([id], [category], [question], [answer], [tags]) 
SELECT ([id], [category], [question], [answer], [tags]) 
FROM [SQL2005_552664_gsow].[dbo].[faq] 

, bu nedenle her türlü yardım takdir edilmektedir.

cevap

1

Sen OPENDATASOURCE veya OPENROWSET diğer sunuculardaki tabloları erişmek için kullanabilirsiniz. Sorguda SQL kimlik bilgileri sağlamanız veya bunun çalışması için windows kimliğinize erişmesine izin vermek için her iki veritabanının da ayarlanması gerekir. Ayrıca, ithalat/ihracat sihirbazını SQL Server Management Studio'da da kullanabilirsiniz - veritabanına sağ tıklayın ve Görevler -> İçe Aktar veya Görevler -> Dışa Aktar'ı seçin.

+0

sayesinde ithalat/ihracat veritabanı mükemmel çalıştı. – Anders

1

"Uzak" nasıl konuşuyoruz? bu sizin ilk örneği olarak gösterdi sadece, veritabanı adını başa ekleyebilir aynı sunucuda başka bir veritabanı varsa: bu tamamen farklı bir sunucuda ise

INSERT INTO [mytable] SELECT * FROM [database].dbo.[table] 

, bağlantılı sunucuları olarak ayarlamanız gerekir. tabii ki, tam yanı sunucu dahilinde veritabanı ve şema specificy,

INSERT INTO [mytable] SELECT * FROM [server].[database].dbo.[table] 

Sen zorunluluk ve ağ üzerinden veri taşımak gerekir, çünkü performans acı bekliyoruz: O zaman bunu yapabilirsiniz.

+0

remote = Paylaşılan MSSQL sunucusu. – Anders

0

EXEC sp_addlinkedserver @server = 'RemoteSer', @ srvproduct = '', @provider = 'MSDASQL'I', @provstr = 'SÜRÜCÜ {SQL Sunucusunu KULLANIM ana }; SERVER = 000.000.000.000 \ SQLEXPRESS;' [RemoteSer] GELEN

SEÇ * INTO bnkWeb.dbo.test1 GO. [Bnk]. [Dbo]. [Test1]

İlgili konular