Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQLAlchemy更新操作在列表处于“0”状态时不起作用;在;运营商是巨大的_Python_Sql_Sql Server_Python 3.x_Sqlalchemy - Fatal编程技术网

Python SQLAlchemy更新操作在列表处于“0”状态时不起作用;在;运营商是巨大的

Python SQLAlchemy更新操作在列表处于“0”状态时不起作用;在;运营商是巨大的,python,sql,sql-server,python-3.x,sqlalchemy,Python,Sql,Sql Server,Python 3.x,Sqlalchemy,我试图更改列表“list_var”中ID所在行的值 当list_var的长度很小时,上面的代码工作得很好,但当长度很大时,它会给出以下错误 DBAPIError: (pyodbc.Error) ('07002', '[07002] [Microsoft][SQL Server Native Client 11.0]COUNT field incorrect or syntax error (0) (SQLExecDirectW)') 有什么解决办法吗?当我将列表拆分为较小的列表时,它起了作用。

我试图更改列表“list_var”中ID所在行的值

当list_var的长度很小时,上面的代码工作得很好,但当长度很大时,它会给出以下错误

DBAPIError: (pyodbc.Error) ('07002', '[07002] [Microsoft][SQL Server Native Client 11.0]COUNT field incorrect or syntax error (0) (SQLExecDirectW)')

有什么解决办法吗?

当我将列表拆分为较小的列表时,它起了作用。 下面是代码

if(len(list_var)>1000):
     chunks = [list_var[x:x+1000] for x in range(0, len(list_var), 1000)]
     for chunk in chunks:
         query = sqlalchemy.update(Table_var).values(column_var=2).where(Table_var.columns.ID.in_(chunk))
         res = conn.execute(query)

如果我没记错的话,mssql将占位符的数量限制为数千个,这是由于实现细节(可能与SP参数计数有关,即2100)。创建并使用一个临时表或TVP(大多数Python驱动程序都不太支持)。既然您要求解决任何问题:将list_var一分为二,并分别执行这两个部分?
if(len(list_var)>1000):
     chunks = [list_var[x:x+1000] for x in range(0, len(list_var), 1000)]
     for chunk in chunks:
         query = sqlalchemy.update(Table_var).values(column_var=2).where(Table_var.columns.ID.in_(chunk))
         res = conn.execute(query)