こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

複数データベースでのテーブル共有

SQL Server初心者です。
下記のことが可能かどうか教えてください。

現在、社内ASP Webシステムが10個くらいあります。
バックエンドデータベースとしてAccessを使用していますが、ファイルサイズが数十メガになってしまったものもあり、これらをすべてSQL Serverに移行しようと考えています。

Accessでは、複数のデータベースで共有したいテーブルがある場合、リンクテーブルとして共有できるため、これらのWebシステムでも社員情報テーブルをすべてリンクテーブルで共有しておりました。

SQL Serverに移行した場合、Accessのようにテーブルを共有することはできるのでしょうか?

ご教授のほどよろしくお願いします。

バージョン: SQL Server 2000

投稿日時 - 2009-08-11 15:29:59

QNo.5199107

すぐに回答ほしいです

質問者が選んだベストアンサー

可能ですが、SQL Serverのたて方次第で方法は変わります。
・1台のサーバにSQL Serverを1つだけインストールし、その中に全部のデータベースを作成する
・1台もしくは複数台のサーバにSQL Serverを複数インストールし、それぞれの中にデータベースを作成する

どちらの方法で移行するかはシステム要件次第&サーバの台数次第です。
1つのSQL Server内に全部のデータベースを作成すると管理は容易ですが、1つのSQL Serverにサービスはデータベースエンジンとしては1つなので、負荷も集中しますし、SQL Serverのサービスがダウンしたときには、すべてのシステムが利用不能になります。

それを避けなければならないニーズがあるときに複数のSQL Serverをインストールしてそれぞれで管理します。
サーバ1台に複数のSQL Serverをインストールすることもできますが、管理負担は増えますし、CPU・メモリはそれだけ余計に食います。

前者であれば話は簡単です。
サーバAにSQL Serverをインストールして、例えば「社員」データベースと「売上管理」データベースを作成したとすると、
「社員」データベースのアクセス権限さえ与えてやれば、「売上管理」データベースに対してSQLを投げるときに
SELECT * FROM 社員.dbo.社員マスタ
という形で参照できます。

後者の場合は、リンクサーバというものを設定します。
サーバAに「社員」データベース、サーバBに「売上管理」データベースがあるときに、サーバBに「サーバA」という名前でリンクサーバを設定しておけば、
SELECT * FROM [サーバA].社員.dbo.社員マスタ
という形で参照できます。

投稿日時 - 2009-08-11 17:11:35

お礼

早速のご回答ありがとうございます。
弊社で準備できるサーバーは1台なので、前者になります。
お教えいただいた方法を試してみたところ、希望するデータを他のデータベースより取得することができました。
ありがとうございました。

投稿日時 - 2009-08-11 17:48:17

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

SQL Serverには、リンクサーバという機能があります。
おそらく、望んでおられる機能が実現できると思いますので、
調べてみてください。

投稿日時 - 2009-08-11 17:03:38

お礼

早速のご回答ありがとうございます。
今回は複数のサーバーを使用しませんが、将来複数に分けて使用するようになった場合に、リンクサーバの機能を用いたいと思います。
ありがとうございました。

投稿日時 - 2009-08-11 17:49:50

あなたにオススメの質問