Should I always use 'implicit_returning':False in SQLAlchemy?
<p>What's the potential pitfall of always using <code>'implicit_returning': False</code> in SQLAlchemy?</p>

<p>I've encountered problems a number of times when working on MSSQL tables that have triggers defined, and since the DB is in replication, all of the tables have triggers.</p>

<p>I'm not sure now what the problem exactly is. It has something to do with auto-increment fields - maybe because I'm prefetching the auto-incremented value so I can insert it in another table.</p>

<p>If I don't set <code>'implicit_returning': False</code> for the table, when I try to insert values, I get this error:</p>

<blockquote>
  <p>The target table of the DML statement cannot have any enabled triggers
  if the statement contains an OUTPUT clause without INTO clause.</p>
</blockquote>

<p>So what if I put <code>__table_args__ = {'implicit_returning': False}</code> into all mapped classes just to be safe?</p>

<p>Particularly frustrating for me is that local DB I use for development &amp; testing is not in replication and doesn't need that option, but the production DB is replicated so when I deploy changes they sometimes don't work. :)</p>