У меня есть следующий набор операторов T-SQL. Где курсор загружен с около 500 идентификаторов. И для каждого идентификатора выполняются настроенные операторы обновления.
declare @id int
declare @ids cursor
set @ids=cursor fast_forward read_only for
select id from table_id;
open @ids
fetch next from @ids into @id
while @@FETCH_STATUS=0
begin
update table2 set qty2=0 where id=@id;
update table3 set qty3=0 where id=@id;
fetch next from @ids into @id
end
close @ids
deallocate @ids
Когда я запускаю это, используя pyodbc в python, устанавливая autocommit = True, операторы обновления выполняются только для нескольких идентификаторов, но не для каждогоЯ БЫ. Почему такое поведение?
Здесь используется оператор python.
tsqlString = "declare @id int ... deallocate @ids"
con = pyodbc.connect(connection_string, autocommit=True))
cursor = con.cursor()
cursor.execute(tsqlString)
cursor.close()
con.close()