テーブル [foo] (bar_id int 主キーの自動インクリメント、bar_name varchar) への t-sql 挿入クエリとテキストがあります。
INSERT INTO foo(bar_name)
VALUES (@bar_name_new);
IF @@ROWCOUNT > 0
SELECT bar_id, bar_name
FROM foo
WHERE bar_id = scope_identity();
トリガーは、挿入後に bar_name フィールドを変更できます。そのため、「bar_name」フィールドを更新する必要があります。ここで、sqlite db で同じことを行う必要があります。私はこれを書いた:
INSERT INTO foo(bar_name)
VALUES (@bar_name_new);
SELECT bar_id, bar_name
FROM foo
WHERE bar_id = (SELECT last_insert_rowid());
sqlite changes() 関数を呼び出す db の変更数を確認できます。また、sqlite の case ステートメントについても知っています。しかし、changes() が 0 を返すときに select を実行する必要がないことを sqlite に伝えるにはどうすればよいでしょうか?