在 Azure SQL 数据仓库中创建表时出现 pyodbc 错误

tsb*_*ken 2 python sql azure pyodbc

import pyodbc

sql = 'CREATE TABLE TestTable (TestID int,  TestDate datetime)'

con = pyodbc.connect(SQL Data WareHouse)
con.execute(sql)
con.commit()
con.close()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Traceback (most recent call last):
  File "sqlTest.py", line 24, in <module>
    con.execute(sql)
pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]111212;Operation cannot be performed within a transaction. (111212) (SQLExecDirectW)')
Run Code Online (Sandbox Code Playgroud)

我检查了我可以通过上面的代码使用INSERTDELETE查询,但我不能使用CREATETRUNCATE查询。我检查有许可CREATETRUNCATE使用SSMS了。

是否可以在 Azure SQL 数据仓库中使用 pyodbc 创建表?

tsb*_*ken 6

我可以通过使用自动提交来使用CREATETRUNCATE查询。以下代码工作正常。

import pyodbc

sql = 'CREATE TABLE TestTable (TestID int,  TestDate datetime)'

con = pyodbc.connect(SQL Data WareHouse)
con.autocommit = True
con.execute(sql)
con.close()
Run Code Online (Sandbox Code Playgroud)