• ベストアンサー
  • すぐに回答を!

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

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1181
  • ありがとう数3

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

  • ベストアンサー
  • 回答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.社員マスタ という形で参照できます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • SQLクエリでデータベースが壊れる?

    AccessアプリでSQL Serverデータベースを更新しています。 データベースをODBCデータソースとして登録して、AccessdeそのODBCデータソースへのリンクテーブルを作っています。 データベースが何回か壊れたのですが、AccessVBAから発行したリンクテーブルへのSQLクエリでデータベースが壊れるようなことはあるんでしょうか? あるとしたら、そのクエリを発行すると必ず壊れると思うんですが・・・。 同じAccessアプリを使っても、データベースが壊れない環境もありますし・・・。 データベースが壊れた原因がわからなくて困っています。 Windows 7、SQL Server 2008 R2 Express です。

  • リンクテーブルのようなものは?

    ACCESSのリンクテーブルのような機能は、SQL Server 2000にあるのでしょうか? SQL Serverに作成したデータベースAとBがあり、AにあるテーブルをBから参照更新したりすることはできるのでしょうか? 具体的にはどのようなものになるのでしょうか? 初歩的な質問で申し訳ありませんが、何卒、よろしくお願いします。

  • データベースが異なるテーブルを連結してSELECTしたい

    データベースが異なるテーブルを連結してSELECTしたいと考えています.(PHPを使用して結果をWEB上に表示したいと考えています.) つまり,2つの異なるデータベースがあり,それぞれのデータベースのテーブルの内容をINNER JOINまたはOUTER JOINで連結したいと考えています. 可能でしょうか? また,MS-Accessのリンク機能と同様な機能をPostgreSQLは持っているのでしょうか? PostgreSQL Ver.7.3.0

その他の回答 (1)

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • SQLサーバーにあるテーブルをaccessに「テーブルのリンク」をしたい

    こんばんは。 SQL Server 2005の中にある データベース名:test テーブル名:テーブル1 をアクセス2003にリンクしたいのですがどうすればいいのかわかりません。 データベースウインドウのテーブルのところの何もない所で 右クリック → テーブルのリンク をするとファイルを選択するダイアログが開きます。 「SQL Server Management Studio Express」を選択し そこからどうすればいいのでしょうか? また「ファイルの種類(T)」は何を選択すればいいですか? デフォルトでは 「Microsoft Office Access(*.mdb;*.mda;*.mde)」です。 以上よろしくお願いします。

  • AccessとDB2のテーブルリンクで…

    お世話になります。 ある2台のサーバーが社内にあります。 その2台のサーバーにはそれぞれ、IBMのDB2というデータベースを使用していて、それぞれのDB2内には同じデータベース名(テーブル)が存在します。 現在、サーバーAから新サーバーBに社内WEBシステムの移行を行っていて、Access2000のテーブルリンクを使って、サーバーAにあるDB2のデータベースAのテーブルとリンクをしています。 その際、テーブルリンクをする為にWindows2000の「ODBC データソース アドミニストレータ」のシステムDSNで、「IBM DB2 ODBC DRIVER」を使用してデータベースAにODBCを介して接続しております。 ですが、サーバーA側と同じ名前の、新サーバーBのデータベースAにODBCを介してテーブルリンクを繋ごうとすると、サーバーAと新サーバーBのデータベースAという名前が同じだからか、システムデータソースを追加しても、新サーバーB側のデータベースAに接続が出来ません。 この場合、新サーバーBのデータベースAの名前を同じものではなく、別の名前に変更した方が宜しいのでしょうか。 質問内容に不足な点がございましたら、内容を再度追加致します。 どうぞご教授宜しくお願いします。

  • ACCESSを利用した顧客管理

    現在、社内の顧客管理システムを構築しようと検討中です。 管理する内容としては、営業の折衝履歴、見積情報等で、人数は5人前後での使用を想定しています。 まずは、ACCESSにてデータベースおよびフォームを作成し、「データベースの分割」機能を利用し、バックエンドデータベースをファイルサーバに置いておき、社内で各営業のPCからACCESSでアクセスする様な運用を考えています。 フォーム部分については、私の場合、他の言語よりACCESSでの作成の方が開発期間が短縮出来そうですのでACCESSで作成したいと思っています。 しかし、この方法(ファイルサーバにバックエンドデータベースを置いて共有する方法)での運用について色々調べてみますと、ファイルの破損や処理速度等に関して不安が残る様でしたので、最初はバックエンドデータベースをACCESSのままで試し、問題が出て来たらバックエンドデータベース部分をSQLServer等別のDBに置き換えて対応出来ればと思うのですが、DB置き換え後のテーブル構造が一緒であれば、フォーム部分については使いまわす事は可能なのでしょうか?また、置き換えるDBをSQLServerにする場合は、MySQLやPosgreSQL等他のDBに比べ、移行作業は大分楽なのでしょうか?

  • Oracleによるリンクテーブルでの接続エラー

    よろしくお願い致します。 今、ASPによるWebシステムを作成しています。 データはSQLserver・accessによって管理しています。 システムを動作させているサーバをAとします。 同じネットワーク上のBというサーバのOracleDB内の、ある情報の入ったテーブルを、A上のaccessからリンク(地球のマーク)しています。 そのリンクテーブルを参照して、AのWebシステムを動作させるところ(Select文によるデータ抽出)があります。 しかし、エラー「ODBC--"XXXXX"への接続が失敗しました。」と出てしまいます。 接続にはODBCを利用しており、accessを開いて直接テーブルを見ようとすれば見れます。 しかし、Web上で動作させようとするとエラーが出ます。 何が原因と考えられますでしょうか? ご教授お願い致します。 補足ですが、 OracleのバージョンはA、B共に同じです。 A:Win2000server 、B:Win2003server tnsnames.oraは修正してあり、テーブルも参照は出来ているので問題ないと思います。 Aのaccess(リンクテーブル)からBのテーブルを参照するにはパスワードが必要ですが、レジストリの設定により入力不要にしています。

  • リンクテーブルについて

    ACCESS2003を使用しています。 test.mdbに保存されていたテーブル1、テーブル2を データーベース分割ツールでtest_be.ldbにリンクテーブルしました。 その後にテーブル3を作成したのですがこれもtest_be.ldbに追加で移動しリンクテーブルにしたいのですがどうすればいいのかわかりません。 「データーベース分割ツール」→「バックエンドデータベースの作成」となるのですがこれに上書きしてもいいのでしょうか? またリンクテーブルマネージャーを見ても新しいテーブル3は表示されません。 よろしくお願いします。

  • AccessとSQL Serverの連携について

    現在Accessで組まれているデータベースがあるのですが、複数人で入力をする必要が出てきたため、SQL Serverへ移行したいと思っています。 ただ、まだデータベースの内容が完全にFIXしておらず、項目に変更や追加が発生する可能性があります。 そこで、 ●Accessを管理画面として使い、 ●Access上で内容を変更したら、システム全体もその通り変わる ような仕組みを作りたいのですが、可能でしょうか。 (完全にSQL Serverへ移行するのではなく、AccessとSQL Serverを連携させる?) よき方法がありましたら教えて頂けましたら幸いです。 ちなみにコストはあまり大きくはかけられません・・。 どうぞよろしくお願いします。 (※私はシステムはど素人なので、なるべく簡単に教えて頂けたら嬉しいです。なお、説明がおかしなこともあるかと思いますがご容赦ください。)

  • Delphi BDE 複数ユーザによるデータベース共有ができない

    環境は、WindowsXP Delphi3.0 BDE→PARADOXを使用 複数ユーザによるデータベースの共有ができなくて困っています。 エラーメッセージは「テーブルは使用中です。テーブル:\\○○○\○○\○○.DB ユーザー:○○○○○」とでます。 複数というのはPC2台を使用しての共有なのですが、どちらもBDEの設定をそろえております。いろいろなサイトを探し回ったのですが何分初心者なので解決策が見つかりません。 ちなみにデータベースはサーバー上に上げています。 複数でなければエラーもなくきちんと動作します。 お分かりになる方いらっしゃいましたらご教授よろしくお願いいたします。

  • データベースの共有方法?

    Microsoft Accessで作成したデータベースを、インターネットを介して複数の特定者と共有したいのですが、なるべく簡単で費用の少ない方法を教えてください。Microsoft Accessについては初級~中級レベルです。

  • テーブル作成クエリとデータベースの分割

    当方、Accessは全くの素人ですが、急遽Accessにて連絡先台帳を 作ることとなりました。 参考書を片手に、なんとかそれ相応のものになってきましたが、 表題部分にて四苦八苦しております。 どうぞ、ご教授のほどよろしくお願いします。 まず、連絡先テーブルを作成しました。 この中には個人名、会社名、住所などを入力するようにしました。 会社名の中には複数のレコードがあるため、個人向けではなく、会社向けの 送付用のラベルを作成したいと思い、テーブル作成クエリを用いて 会社テーブルを作成しました。 上記テーブルから、ラベル作成までは何とかできるようになりましたが、 複数のユーザーがこのデータベースを使うため、データベースの分割をし 運用したいのです。 また、この会社テーブルを別のデータベースでも使用したいと思っております。 ツールを用いて、データベースの分割はできましたが、新たな連絡先が 追加されたときなど、再度テーブル作成クエリを実行してしまうと、リンクが 外れてしまいます。 外部データからリンクテーブルを作りなおすと、以前のデータのままなので、 分割したデータベースを更新しなければならないことはわかりましたが、 その方法が全くわかりません。 できれば、更新ボタンを押した際に、 テーブル作成クエリを起動して、テーブルを作成し、分割したデータベースを 更新させたいのですが、何か良い方法はございませんでしょうか? 他の方法でも全く問題ありません。 VBAやマクロでも構いません。 ただ、VBAもマクロも殆どわかりませんので、できればコード等を記載して いただけると助かります。 Access2007を用いております。 どうぞよろしくお願いします。

  • データベースサーバー構築

    質問場所がここで良いか少し不安ですが 主にWebで公開するデータベースのシステムを作ろうとしています 自分のスキルの範囲でやろうとしていますが少し分からないことがあるので 教えてください まず 自分のできること(やっていること)は ・Windows系サーバー(IIS)を使ってVBスクリプト(ASP)で ローカルにあるMDBファイルにアクセスし商品を紹介する動的ページの作成 です。 今後複数ユーザーでデータベースを使うことになるので システムを変えていく必要がでてきて MDBはダメだという事になり色々調べた結果、今後のことも考えWebサーバーとは別に データーベースサーバーを作ってやると言う結論になりました 分からないこと(あやふやな理解になっていること) 1.データベースサーバーとは何か?  これは OSは別として、SQL Server、オラクル、MYSQLといった  RDBMSをインストールしただけのデータベース置き場専用という感じのPCを指すと言うことで良いでしょうか?  例えば Win2000のIISでwebサーバーを作りその中のASPページから  別PCにあるデータベースにアクセスする構成がデータベースサーバーを別に設けると言うことで正しいのかどうかと言うことなのです。 2.データベースは何がよいか?(SQL Serverでよいか?)  本来であれば、webで商品在庫を公開することがメインで更新頻度が少ないデータベース  (300人ぐらいで共有し1万~3万レコードです)です、なおかつ複雑なSQLは発行しません。  ほぼASPからの接続で抽出(ID=** という単純な抽出条件)しか使わない、あとは並び替え位なので  MYSQLが向いているようでしたが、私はLinux系は全く分かりません。  なので メンテナンスの面や勉強する時間の節約からすれば  Windowsで動くSQL Serverが良いと思うのですが(MYSQLもWindowsで  動くけど得意とする高速性はLinux系でないと発揮しないみたいなのでやめようと思っています)  上記のような条件と使い方の場合、そんなに処理時間やマシンの負荷に両者間では大差があるのでしょうか?  MDBの時でもあまり不具合を感じなかったので、それよりは格段にSQL Serverは早いし負荷が少ないと聞いていますので  大丈夫かなと思っています。 3.SQL ServerをインストールするPCは何が最適か?  先も述べたようにデータベース専用として使う予定ですが  Win2000でよいのでしょうか?(XPより2000の方が安定がよいと思うので) それともWin2003Serverに  インストールできるならその方がよいでしょうか?  とにかく安定度が一番なのですが、そもそもWin2003Serverに  インストールできるのでしょうか?(もうすぐ2008?がでるからそれにしようかとも検討中です) 4.最終的に自分の思っていることと実体の構成(理解)は理解は以下のような感じで正しいのでしょうか?    複数でデータベースを共有するため、MDBでなくネットワークに強い (共有データベースで壊れにくい?壊れない?)データベースに変えるため、windowsで動くSQL Serverを使う  そのSQL ServerはwebサーバーがあるPCとは別のPCにインストールして使う  (データベースサーバーを別に用意する)ことでwebサーバーの負荷も減らし、データベースも快適に動くようにする 最終的にはWin2003Server×2台で1方はwebサーバー1方はSQL Server をインストールして使うことで上記を実現させる 5.SQL ServerのデータベースはMDBのような最適化というような作業が必要なのでしょうか?  そもそも 似ているようで違う MDBとSQL Serverでその特徴がきちんと理解できていないので  愚問なのかもしれませんが 気になるので教えてください 6.オラクルと違いSQL Serverはレコードの更新や追加の時  その行(レコード)だけロックすると言うことができない?  ようなので、Aさんが自分の商品を更新中にBさんも更新する  と言うようなことが起こった場合(MDBはこれになると壊れると書いているので MDBをやめました)  Aさんの更新が終わるまでBさんは更新できない(更新終了まで待つ)と言うことになるのでしょうか?  また、このとき商品一覧を要求された場合、更新中の情報はどの様になるのでしょうか?(更新終了まで見れない?) なんか 分かりにくい質問になってしまいましたが、お金をかけて 買ったはいいが、理解不足でやりたいことができなかったと言うことは 避けたいので ご教授下さい。 よろしくお願いします。