2009-03-03 1 views
0

これを行う最善の方法は何ですか?私はいくつかのINSERTステートメントを見つけましたが、それらはすべて内部データベースのコピーのためだけに機能するようです。リモートMSSQLテーブルのデータをローカルテーブルにコピーすることはできますか?

マイ演出:

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

私はまだMSSQLと非常に流暢ではないですので、任意およびすべてのヘルプは高く評価されています。

答えて

1

あなたはOPENDATASOURCEまたはOPENROWSETは、他のサーバ上のテーブルにアクセスするために使用することができます。クエリにSQL資格情報を提供するか、両方のデータベースをセットアップしてWindows IDにアクセスできるようにする必要があります。 SQL Server Management Studioでインポート/エクスポートウィザードを使用することもできます。データベースを右クリックし、[タスク] - > [インポート]または[タスク] - > [エクスポート]を選択します。

+0

FROMおかげで、インポート/エクスポート・データベースは完全に働きました。 – Anders

0

DTSまたは(2005+)Integration Servicesを調べることをお勧めします。両方とも1つのDB(テーブル)からデータを取り出し、別のDB(テーブル)にコピーします。統合サービスへ

リンク:http://msdn.microsoft.com/en-us/library/ms141091.aspx

1

"リモート"とはどういう意味ですか?それは、同じサーバー上の別のデータベースの場合は、単にあなたの最初の例として、データベース名を付加することができ示した:それは完全に別のサーバー上にある場合は

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

を、あなたは、リンクサーバーとしてそれらを設定する必要があります。もちろん、完全にだけでなく、そのサーバー内のデータベースとスキーマをspecificy、

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

あなた必見、それがネットワーク経由でデータを移動する必要がありますので、パフォーマンスが低下することを期待:次に、あなたはこれを行うことができます。

+0

リモート=共有MSSQLサーバー。 – Anders

0

USEマスタ

GO

EXEC sp_addlinkedserverを @server = 'RemoteSer' @srvproduct = ''、 @Provider = 'MSDASQL' @provstr =「DRIVER = {SQL Serverの}; SERVER = 000.000.000.000 \ SQLEXPRESS; ' GO

SELECT * INTO bnkWeb.dbo.test1 [RemoteSer]。[BNK]。[DBO]。[TEST1]

関連する問題