7 ✓シーケンス値を取得する SQL 文は RDBMS によってバラバラ RDBMS 次の値 現在の値 備考 Oracle Database seq1.NEXTVAL seq1.CURRVAL SQL Server NEXT VALUE FOR seq1 sys.sequences ビュー PostgreSQL NEXTVAL('seq1') CURRVAL('seq1') LASTVAL() MariaDB NEXT VALUE FOR seq1 PREVIOUS VALUE FOR seq1 NEXTVAL(seq1) LASTVAL(seq1) seq1.NEXTVAL seq1.CURRVAL SET sql_mode=oracle ✓SQL Server の sys.sequences ビューには最終シーケンス値 last_value が格納される。
8 ✓SQL Server では ORDER BY 句と一緒に使う場合は OVER 句が必要 1> SELECT NEXT VALUE FOR seq1, c1, c2 FROM data1 ORDER BY c1; 2> GO メッセージ 11723、レベル 15、状態 1、サーバー WIN-T5RHRCGS252、行 1 NEXT VALUE FOR 関数は、OVER 句が指定されている場合を除き、ORDER BY 句を含むステー トメントで直接使用することはできません 。 1> SELECT NEXT VALUE FOR seq1 OVER (ORDER BY c2) AS seq1, c1, c2 FROM data1 ORDER BY c1; 2> GO seq1 c1 c2 -------------------- ----------- ---------- 1 10 data1 2 20 data2 (2 行処理されました)