2009-06-10 20 views
0

私は2つのデータベースを持っていますが、異なるデータ構造を持つデータベースAとBがあります。 データベースAには、テーブル連絡先があります。 データベースBには、勘定科目テーブルがあります。あるデータベースから別のデータベースにデータを転送する

データベースAのテーブルの連絡先からデータベースBのテーブルのアカウントにデータを転送します。 私はSQL Server 2005を使用しており、これを行うにはSQLスクリプトを作成します。

a)同じSQLサーバー上にある場合 b)異なるSQLサーバー上にある場合は、これを実現する最も簡単で効率的な方法を教えてください。

乾杯

答えて

1

SSISを使用してください。これは、ローカルとリモートの両方のケースで機能し、テーブル間の変換を設定したり、カラムをカラムにマップするなどの機能を果たします。

+0

SSIS BOL:http://msdn.microsoft.com/en-us/library/ms141026あな​​たは次のようにsp_addlinkedserverをとsp_addlinkedsrvloginが(構文については、BOLを確認してください)、およびクエリを使用してリンクサーバーをセットアップします。 aspx –

+0

ありがとうミッチ、 私はSSISでいくつかの読書をしました。 Ammは、SSISがマッピングを行うためのグラフィカルUIしか持っていないこと、またはマッピングが完了して複数回使用できるようになるとスクリプトを生成できることは事実です。私が取り組んでいるシステムは、データベースAからデータベースBにデータを読み取るストアドプロシージャを実行します –

1

一度だけ転送しますか?それは、単純な転送がいた場合、私は、INSERT文を作成するために、SELECT文、すなわち

SELECT 'INSERT INTO Accounts (ID, Name) VALUES (' + CAST(ID as VARCHAR) + ', ''' + Name + ''')' 
FROM Contacts 

を実行し、このデータベースにAを書く - 、それはあなたがそれらを実行することができますが、コピーし、すべてのINSERT文を、吐き出すと貼り付けられますデータベースB.

上、または、同じデータベース上:

まだ
INSERT INTO DatabaseA.dbo.Accounts (ID, Name) 
SELECT Id, Name 
FROM DatabaseB.dbo.Contacts 

ない幸せ - リンクサーバーをセットアップしてみてください:http://msdn.microsoft.com/en-us/library/aa213778(SQL.80).aspx

+0

ありがとうrussau。ええ、私は手術が何度も必要です。 –

1

最も簡単な方法は必ずしも最も効率的ではありません。 Mitchがすでに示しているように、SSISが最も効率的です。

最も簡単なのは、SSISが既にわからない場合は、リンクされたサーバーをリモートDBにセットアップし、4つの部分からなる名前を使用してデータを選択することです。

INSERT INTO MyLocalTable (ColumnList) 
SELECT <Columns> FROM RemoteServer.RemoteDB.RemoteSchema.RemoteTable 
+0

ありがとうAaron、 私はSSISでいくつかの読書をしました。 Ammは、SSISがマッピングを行うためのグラフィカルUIしか持っていないこと、またはマッピングが完了して複数回使用できるようになるとスクリプトを生成できることは事実です。私が取り組んでいるシステムは、データベースAからデータベースBにデータを読み込むストアドプロシージャを実行します –

関連する問題