2012-04-27 15 views
1

私はSQL Serverを新しく導入しました。私は基本的な管理者、バックアップなどを行っています。私はまた、MySQLの特注プログラムのソフトウェアサポートを提供するソフトウェア会社のために2年間MySQLを使っています。私は主に技術者(デスクトップ、ネットワーキング)ですが、私の頭をこのDBのもののまわりで手に入れています!あるデータベースから別のデータベースへデータを転送する際の助言

SQL Server 2005を実行していて、何か必要なものが必要な会社から始めました。何とか文法に苦しんでいます。同社には、4つの異なる場所で同じdb(プログラム)を実行する4つのSQL Serverがあります。

私がしようとしているのは、更新されたコストの価格表を表1から、*条件付きの他の表にコピーすることです。基本的にtable.partsserver1.partsからserver2.parts * currencyconvertion field * markup (%)

からコピーしてください。私はdbをリンクすることができません。私は含まれているサーバー名を入力します - 構文が間違っていると言う例:uk-server1 'can't find 'uk'?また、私は4つの部分のアドレスが正しいservername、dbname、スキーマ、テーブルが不明ですか?

右以前は試してみましたが、2台のサーバーをリンクできませんでした。私は今これを解決し、サーバーは今リンクされています。私は、[]がサーバー名を引用する必要があるかもしれないと言われています。私はこれを成功させずに試みました。この問題は、 - uk-efacsを持つサーバーの名前のようです。すぐに私がこれをタイプし、それが今、連鎖していることを覚えているのは、サーバーのefacを見つけることができないのです。英国は間違っていますか?完全なサーバー名は準備できていませんか?どうして?

試行錯誤の結果、[uk-efacs] .db.table.fieldというサーバー名で[]が必要です。これで、クエリにエラーが表示されるので、これで構いません。

+0

が 更新 partmasterセットpartmaster.fsunit =英国efacs.efacsdb.partmaster.fsunit *英国-efacs.efacsdb.currency.currateを行くあなたは – CharlesB

+0

使用traindbを取得し、あなたが試したコマンドやエラーを投稿してください* 1.32 – Judge

+0

これはエラーメッセージ207、レベル16、状態1、行1 無効な列名 'uk'です。 メッセージ4104、レベル16、状態1、行1 マルチパート識別子 "efacs.efacsdb.partmaster.fsunit"をバインドできませんでした。 msg 207、レベル16、状態1、行1 無効な列名 'uk'。 メッセージ4104、レベル16、状態1、行1 マルチパート識別子 "efacs.efacsdb.currency.currate"をバインドできませんでした。 – Judge

答えて

0

これから実行しているサーバーにリンクサーバーレコードを作成してみてください。オブジェクトエクスプローラ(SSMS)で[サーバーオブジェクト]を展開し、[リンクサーバー]を右クリックして[新規]を選択します。 [SQL Server]を選択し、リモートサーバーの名前を入力して、再度クエリを実行します。あなたが提供したスニペットとして戸惑うビット

update partmaster 
set partmaster.fsunit = uk-efacs.efacsdb.partmaster.fsunit * uk-efacs.efacsdb.currency.currate * 1.32 

ちょうど良いと解釈されているようです。

関連する問題