I'm using Microsoft SQL Server, but this is a general question about calling stored procs via JDBC.
I want to manage transactions within my stored proc (i.e. by placing BEGIN TRAN and COMMIT TRAN around relevant pieces). But whenever I call a stored proc through JDBC it always seems to be wrapped in a transaction - either implicitly with the 'auto-commit' setting turned on, or explicitly using commit().
Is there some way I can call SQL without having it wrapped in a transaction?
Databases have two kinds of statements: DML and DDL. DML is always in some form of transaction. Not a Java issue, just the reality of database architecture. Some databases will let you change the transaction isolation level so that different threads of execution can see each other's interim results, but the transactionality is still in effect - the changed isolation level just means that you don't have all the ACID properties.