sql - SQLiteException «logic error near "ON"» when creating a trigger -


i'm trying use sqlite run nhibernate integration tests. nhibernate's schemaexport set database me based on mapping files. works fine, except triggers. here's such trigger in .hbm file looks like:

<database-object>   <create>     create trigger tr_personinserted on person after insert     begin       set nocount on        update person        set    modifieddate = getdate(), createddate = getdate()          inserted         person.personid = inserted.personid        set nocount off     end   </create>   <drop>   </drop> </database-object> 

this works great in sql server 2012.

without trigger schemaexport works fine when using sqlite. with trigger though, exception when creating schema:

system.data.sqlite.sqliteexception : sql logic error or missing database near "on": syntax error

this not descriptive. i've tried several things bit further, including:

  • removing contents (i.e. between begin , end)
  • removing as statement
  • removing on statement
  • removing underscore trigger name
  • adding ; before statement

nothing seems help.

what missing? correct syntax trigger in sqlite?

i'd prefer solution works fine in sql-server-2012, not fussed can create different trigger per database dialect if needs be.

ps. i'm using nuget package system.data.sqlite (x86/x64).

in sqlite's create trigger accepts syntax in form

create trigger t after insert on x begin {stmts} end 

whereas sql server's create trigger, , provided schema, in form

create trigger t on x after insert {stmts} 

normalizing 2 different syntax forms across different database engine not seem practical directly specified sql ddl, considering other differences such lack of set nocount in sqlite.

to put full example based of specific case, come down to:

create trigger tr_personinserted insert on person begin   update person    set    modifieddate = datetime('now'), createddate = datetime('now')    personid = new.personid; end 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -