Как получить точный ответ оператора вставки / обновления SQL Server Query Explorer через python, используя pymssql - PullRequest
0 голосов
/ 19 октября 2019

Операторы вставки / обновления всегда предоставляют обновленные строки и вставленные столбцы в окне ответа обозревателя запросов SQL Server.

Хотите получить те же результаты из Python 3.x.

У меня миллионы записей, и мне нужно знать каждый счетчик обновлений и вставлять счетчик, как мы получаем ответ вSQL Server

Уже пробовал cursor.lastrowid Но всегда указывайте LAST Id, который обновляется.

#Sample code to provide connection strings
import pymssql
server = 'myserver'
username = 'myusername'
password = 'password'
connection_obj = pymssql.connect(host=server,user=username,password=password,database='mydb')
cursor = connection_obj.cursor()
cursor.execute("Insert into mydb(Id, name) values(44, 'SOMETHING')")
connection_obj.commit()

Ожидаемый вывод (отображается в окне ответа на SQL-запрос)

При вставке / обновлении:

(затронуто 1 строк)

(Затронуто 1 рядов)

(затронуто 1 рядов)

(затронуто 1 рядов)

....

1 Ответ

0 голосов
/ 19 октября 2019

Если ваш драйвер не предоставляет сообщения о количестве строк, вы можете вернуть количество строк с помощью запроса, который возвращает значение системной функции @@ rowcount . например,

cursor.execute("Insert into mydb(Id, name) values(44, 'SOMETHING'); select @@rowcount rc;")
row = cursor.fetchone() 
rowCount = row[0]
...