おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

【プリザンター】拡張SQL機能を使って自動連番を実装!

f:id:bookreadkun:20190720211123p:plain

おはようございます。おーみんです。

 

今回の記事ではプリザンターの拡張SQL機能を使ってテーブルに連番を振っていこうと思います。

 

参考記事

プリザンター システム機能:拡張SQL

 

環境

  • Windows10
  • プリザンター 0.50.76.38217

 

自動連番のイメージ

 

現在、プリザンターのテーブルは以下の構成になっています。

f:id:bookreadkun:20190720222232p:plain


レコードの中を覗いてみると・・・

 

f:id:bookreadkun:20190720213202p:plain

赤枠で囲まれている自動連番という項目がありますね。

(作り方は「テーブルの管理」→エディタで作成)

 

こちらの番号がテーブル作成時に自動で振られていくというイメージになります。

 

拡張SQLの実装

それでは拡張SQLの実装をしていきます。

 

拡張SQLを書く上で大切なのはまず自動連番を実装したいテーブルのサイトIdとフォームの列名(データベースの列名)です。

 

まずはSQL Server Management Studioを開き、それぞれの列名を確認します。

f:id:bookreadkun:20190720222144p:plain


今回連番を振りたいサイトIdは「62」、フォームの列名は「ClassA」ということが分かりますね!

 

連番を振るSQLは以下になります。

-----------------

UPDATE Results SET ClassA = 

    (SELECT MAX(ClassA) FROM Results WHERE SiteId = 62) + 1

    WHERE ResultId = {{id}};

-----------------

※{{id}}はレコードのIDに置換されます。

 

次に上記に掲載した拡張SQLの設定方法に倣ってjsonファイルを作成していきます。

 

f:id:bookreadkun:20190720222400p:plain



"SiteId"は「62」に設定し、新しくテーブルを作成したときに連番を振りたいので"OnCreated"を「true」としています。

拡張SQLは"CommandText"欄にコピーしてください。

 

作成したjsonファイルは\pleasanter\App_Data\Parameters\ExtendedSqlsに置いてください。

 

それでは、新しくレコードを作ってみましょう!!

先ほどまでに3つのレコードを作っているので次に作られるレコードには「4」が振られればOKです!

 

f:id:bookreadkun:20190720223001p:plain

 

無事に「4」が振られました!

 

最後に

ということで、プリザンターの拡張SQL機能を使って自動連番を実装する方法を書きました!

 

拡張SQLは凄く便利な機能なのでぜひ利用してみてください!