2017-10-10 5 views
0

以前は、1つの物理サーバーに2つのデータベースがありました。 ( 'People'と 'Work'データベース)
'People'データベース情報が 'Work'データベースで必要な場合、以下のクエリを使用しました。Mssqlでリンクされたサーバーで既定のカタログを設定する方法

select * from People.dbo.information 

しかし、1つの物理データベースを2つの物理サーバーで分離する必要があるということが私に発生しました。
私は 'People'データベースサーバーで、 'Work'データベースの情報を前と同じように参照するためのリンクサーバー接続を作成しました。その後、リンクサーバーで 'People'カタログを設定しました。

私はすでにデフォルトのカタログを設定していますが、データベースの名前を入力する必要があります。名前をスキップすることはできません。

Phycalデータベースが分離されましたが、リンクサーバーを使用して以前のクエリを使用したいと思います。

例) 「Peoplo」と呼ばれるリンクサーバーを作成した場合、以下のクエリを使用する必要があります。

select * from People.People.dbo.information 
--select * from [linked name].[db name].[dbo].[table Name] 

以下のクエリを使用します。

リンクサーバー上のログインに「既定のデータベース」を設定している場合
select * from People.dbo.information 
    --select * from [linked name].[dbo].[table Name] 
    --Then, linked name is seted with default catalog as 'People' 

答えて

0

、あなたはそれを行うが、この(2つのドット、スキップデフォルトのカタログ)

select * from People..dbo.information 

注意を使用することができ、リンクされたサーバーは、サーバー間で結合するときにパフォーマンスの問題が発生することがあります

また、データには参照整合性がありませんすべてです。データベースは、ダウンタイムや復元などの場合には、同期化されず、一貫性がありません。

+0

お返事ありがとうございます。だから私は2ドットなしで使用できるのだろうかと思う。言い換えれば、 'select * from People.dbo.information'の代わりに 'select * from People..dbo.information'を使用します。 どうもありませんか? –

+0

'People..dbo.information'はリンクされたサーバー" People "、デフォルトのリモートデータベースです。人。 'People.dbo.information'はローカルデータベースPeopleです。あなたは2つのドットを使用する必要があります – gbn

+0

ありがとう!私のプログラムコードとSQ​​Lプロシージャーを2つのドットに変更する必要があります。その時点で、それは1台の物理サーバで使用されていたので、それは今すぐに分離されています。 もう一度ありがとうございます。 –

関連する問題