FAQ:プリザンターから外部DBのテーブルを参照したい
## 概要
「[拡張SQL](/manual/extended-sql)」の「OnSelectingColumn」を使用しプリザンターから外部DBのテーブルを参照するサンプルコードです。参照したい外部DBをSQL Serverの「リンクサーバー」機能を使って参照します。
## 前提条件
1. 事前にリンクサーバの設定が完了している必要があります。
## 説明
プリザンターから参照する外部DBのテーブル例です。
| id | 氏名 | 年齢 |
| :-: | :-: | :-: |
| 1 | ユーザー1 | 21 |
1. プリザンターのテーブルの分類Aに外部DBテーブルの id が格納されていることとします。
1. 外部DBテーブルの 年齢 をプリザンターの 分類Z に表示します。
## 操作手順
### テーブルの設定
1. プリザンターを開き、テーブルを作成してください。
1. 「[テーブルの管理](/manual/table-management)」を開き「[一覧](/manual/table-management-grid)」タブと「[エディタ](/manual/table-editor)」タブで「分類Z」を有効化してください。
1. 対象となるテーブルのサイトIDをメモしてください。
### 拡張SQLの設定
1. 後述のJSONファイル例を LinkSever.json として保存してください
- 保存先は以下の通りです。
- C:\web\pleasanter\Implem.Pleasanter\App_Data\Parameters\ExtendedSqls\LinkServer.json
1. SiteIdList をメモしたサイトIDに変更してください。
1. CommandText のSQLのFROM句: [リンクサーバー名].[DB名].[スキーマ名].[テーブル名] [照合順序]は設定したいリンクサーバーと、参照したいテーブル名に変更してください。
1. プリザンターを再起動してください。
##### JSON(LinkServer.json)
```
{
"Name": "LinkServerTest",
"Description": "LinkServerTest",
"SiteIdList": [xxx],
"ColumnList": ["ClassZ"],
"OnSelectingColumn": true,
"CommandText": "(select age from [LINKSERVER].[postgres].[public].[staff] where id = Results.ClassA COLLATE Japanese_CI_AS)"
}
```
## 関連情報
<div id="ManualList"><ul><li><a href="/manual/table-editor">テーブル機能:レコードのエディタ画面</a><span>2023/04/12 up</span></li></ul></article>
<ul><li><a href="/manual/table-management">テーブルの管理</a><span>2023/04/19 up</span></li></ul></article>
<ul><li><a href="/manual/table-management-editor">テーブルの管理:エディタ</a><span>2023/04/21 up</span></li>
<li><a href="/manual/table-management-editor-columns">テーブルの管理:エディタ:エディタの項目の設定</a><span>2023/04/21 up</span></li></ul></article>
<ul><li><a href="/manual/table-management-grid">テーブルの管理:一覧画面</a><span>2023/05/12 up</span></li></ul></article>
<ul><li><a href="/manual/extended-sql">開発者向け機能:拡張機能:拡張SQL</a><span>2023/05/18 up</span></li></ul></article></div><input id="SearchTextHidden" type="hidden" value="" />