no-image

SQL Server で Accsessのリンクテーブルみたいなものを実現したい。

少しはまったのでメモ。
SQL Server のリンクテーブルみたいなものはリンクサーバとシノニムを使えばOK。
http://www.sunvisor.net/db/link_table
上記を参考にして設定をおこなった。

Microsoft SQL Server Management Studio Express から、
「サーバーオブジェクト」 -> 「リンクサーバー」 を右クリック
「新しいリンクサーバー」を選択。
リンク元もSQL SERVERの場合は、
■全般
リンクサーバ : リンクするサーバの名前(データソースそのままがいいかも)
その他データソース
 プロバイダ 「Microsoft OLE DB Provider for SQL Server」
 データソース 「データソース(マシン名¥SQLEXPRESSなど)」
 プロバイダ文字列「SQLOLEDB.1」
 カタログ「DB名」
■セキュリティ
 ローカルサーバのログインとリモートサーバのログインのマッピングで追加
 ローカルログイン 「sa」
 リモートユーザ 「sa」
 リモートパスワード 「リンク元サーバのsaパスワード」
OKを押す。
エラーが出なければおそらく問題なし。

新しいクエリで以下を発行し、実行
CREATE SYNONYM 指定したいテーブル名 FOR リンクサーバ名.データベース名.スキーマ.テーブル名
リンクサーバ名に、演算子(+-など)や、「.」が含まれている場合は、必ず「”」でリンクサーバ名をくくる。
ex)
CREATE SYNONYM TABLE_1 FOR “192.168.1.2”.DB1.dbo.TABLE1

新しいクエリで
select * from 指定したいテーブル名
で結果が返ってくればOKです。