Can I call a stored proc without wrapping it in a transaction?
Joined: Oct 14, 2001
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?
Reid M. Pinchback
Joined: Jan 25, 2002
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.
Reid - SCJP2 (April 2002)
Joined: Sep 16, 2005
By the way, it's usually not a good idea to have a java.sql.Connection's autoCommit property set to true -- that mode is intended for ad hoc SQL console work.