• ベストアンサー

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

SQL Server初心者です。 下記のことが可能かどうか教えてください。 現在、社内ASP Webシステムが10個くらいあります。 バックエンドデータベースとしてAccessを使用していますが、ファイルサイズが数十メガになってしまったものもあり、これらをすべてSQL Serverに移行しようと考えています。 Accessでは、複数のデータベースで共有したいテーブルがある場合、リンクテーブルとして共有できるため、これらのWebシステムでも社員情報テーブルをすべてリンクテーブルで共有しておりました。 SQL Serverに移行した場合、Accessのようにテーブルを共有することはできるのでしょうか? ご教授のほどよろしくお願いします。 バージョン: SQL Server 2000

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

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

可能ですが、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.社員マスタ という形で参照できます。

qrjmomi
質問者

お礼

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

その他の回答 (1)

  • qbr2
  • ベストアンサー率50% (62/123)
回答No.1

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

qrjmomi
質問者

お礼

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

関連するQ&A