Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Execute sql-server transaction using python

How can I execute sql server transaction using pyodbc(python)?

I know there is a method "execute" for one string and one arguments' list.

But now I want to execute 2 or more commands in one transaction like this.

Is there a method to do that?

BEGIN TRANSACTION [Tran1]

BEGIN TRY

INSERT INTO [Test].[dbo].[T1]
  ([Title], [AVG])
VALUES ('Tidd130', 130), ('Tidd230', 230)

UPDATE [Test].[dbo].[T1]
  SET [Title] = N'az2' ,[AVG] = 1
WHERE [dbo].[T1].[Title] = N'az'


COMMIT TRANSACTION [Tran1]

END TRY
BEGIN CATCH
  ROLLBACK TRANSACTION [Tran1]
END CATCH  

GO
like image 611
shira stenmetz Avatar asked Apr 11 '16 09:04

shira stenmetz


1 Answers

When you create a connection object, you can tell it not to commit every command you execute. Then, when you have executed all the commands you wanted, you can commit them all in one transaction.

myconnection = pyodbc.connect(myconnectionstring, autocommit=False)
# your commands here
myconnection.commit()
like image 183
Pavel Ryvintsev Avatar answered Oct 14 '22 06:10

Pavel Ryvintsev