我在pyodbc中运行某些语句时遇到问题。我想创建一个表变量,插入到表变量中,更新表变量,然后从表变量中选择all。下面的代码是我目前拥有的,尽管它只执行第一个sql语句,然后执行错误,因为它将每个语句视为自己的语句,而不是一个。
在不拆分分号的情况下,pyodbc抛出并错误地指出该语句不是有效的sql查询。感谢您的帮助。
import pyodbc
conn = pyodbc.connect('Driver={Driver};'
'Server=servername;'
'Database=db;'
'UID=user;'
'PWD=pass;')
cursor = conn.cursor()
def main():
statement = """DECLARE @table TABLE (Brand int not null);
INSERT INTO @table (Brand) VALUES (1);
UPDATE @table SET Brand = 2 WHERE Brand = 1;
SELECT * FROM @table;"""
for lines in statement.split(";"):
with conn.cursor() as cur:
cur.execute(lines)
print(lines)
conn.commit()
main()
编辑:感谢@gord thompson提供的解决方案,我正在发布我的新功能,以便其他人可以看到。
def main():
statement = """SET NOCOUNT ON;
DECLARE @SQL varchar(1000)
SET @SQL = 'DECLARE @table TABLE (ClientBrand int not null)
INSERT INTO @table (Clientbrand) VALUES (1)
UPDATE @table SET Clientbrand = 2 WHERE ClientBrand = 1
SELECT * FROM @table'
EXECUTE (@SQL)"""
cursor.execute(statement)
results = cursor.fetchall()
for i in results:
print(i)
conn.commit()
print('success')
main()
暂无答案!
目前还没有任何答案,快来回答吧!