CREATE PROCEDURE sp_myproc @a VARCHAR(250), @b VARCHAR(250) AS BEGIN TRAN ..bunch of code.. DECLARE @id NUMERIC, @newid NUMERIC SELECT @id = id, @newid = (id + 1) FROM sometable WHERE (some condition) ..more bunch of code.. -- Now, insert a new record in request INSERT INTO anothertable (id, othercols) VALUES (@id, othervals) -- Update the request id UPDATE yetanothertable SET id = @newid WHERE (someothercondition) COMMIT TRAN RETURN @id #### my $sth = $dbh->prepare("EXEC sp_myproc ?, ?"); my $id = $sth->execute('foo', 'bar');