0

SQL Server 2008 を使用して、あるデータベースから別のデータベースに挿入しようとしています。

「EG-COMPUTER1\FTLIVE」から「EG-COMPUTER2\FTSTANDBY」に挿入しようとしています。

基本的に、あるコンピューター上のデータベースから、同じネットワーク上にある別のコンピューター上の同じデータベースへ。

どうすればこれを行うことができますか?

注: 同じコンピューターで両方のデータベースに接続できるので、あるデータベースから別のデータベースに挿入する簡単な方法が必要ですか?

編集::

1 台のコンピューターが SQL Server 2008-R2 を使用しており、もう 1 台のコンピューターが SQL Server 2008 を使用していることを追加するだけです。

4

5 に答える 5

2

これを行うにはいくつかの方法があります。

      1. RightClick On DataBase -> Tasks -> Import -> Import Export wizard ->Choose Source database -> choose Destination database -> choose Copy data from One or more table -> choose required tables -> Import.


     2.RighClick On Database -> Task -> Generate Script -> Choose tables -> Advanced -> Change "Types of Data to Script " to "Schema and Data or data or schema(as required)" -> Change "script Drop and Create" to Drop and Create(optional) - > create.
Copy the script file/files and run in the other computer.


     3.Right Click the database -> task -> BackUp -> create backup -> take the back up to other computer(.bak file can be found inside the Backup directory inside installation directory)  -> right click the database -> task -> restore   -> choose the bakup file -> done.


     4. Can use sql azure migration tool  http://sqlazuremw.codeplex.com/ (similar to step 1)
于 2012-11-27T14:14:48.603 に答える
1

データベースレベルのデータ転送のみを使用する場合は、これら2つのインスタンスをリンクサーバー(msdn doc)として構成する必要があります。

それ以外の場合、Java(またはデータベースと対話するためのAPIを提供する高水準言語)に精通している場合は、一方のサーバーのテーブルからデータを取得し、もう一方のサーバーのテーブルに挿入する単純なプログラムを作成できます(クイックリンクサーバーを構成するためにDBAに連絡することなく)。

于 2012-11-27T14:02:55.653 に答える
1

私がする必要があることを見つけました。これは次のとおりです。

INSERT INTO [DatabaseNameA].[dbo].[Table]  
([Column1],[Column2] etc...)
SELECT 
[Column1],[Column2] etc...
 SET IDENTITY_INSERT [DatabaseNameB].[dbo].[Table] On;
GO

これにより、選択したいデータベースが選択され、identity_insert がオンになり、データを挿入して、あるデータベースから別のデータベースにデータを転送できるようになります。

于 2012-11-27T15:31:47.920 に答える
0

ニスヴァ、

ログインで両方のテーブルにアクセスできるかどうかを確認してください。両方のテーブルにアクセスできる場合は、1 つのデータベース テーブルを別のデータベース テーブルにコピーしてみてください。そうでない場合は、1 つのデータベース テーブルから 1 つのビューを作成し、そのビューを別のデータベース テーブルに転送します。

その後、必要なタスクを実行できます。これはベスト プラクティスの方法であり、将来的にはパフォーマンスの問題が発生しない可能性もあります。

このタスクを実行することに興味がない場合は、以下のクエリに従ってください

insert into ur-tablename(column-names) select sourcedbname.schemaname.column-name1 , sourcedbname2.schemaname.column-name ... from sourcedatabsename.schemaname.tablename

于 2012-11-27T14:49:43.500 に答える
0

これが繰り返しのアクティビティでない場合はOpenRowSetを使用できます。アクションを頻繁に実行する必要がある場合は、リンク サーバーを作成する必要があります。

于 2012-11-27T14:56:43.130 に答える