Вставка через pymssql, но в базе данных нет строк

Я новичок в python и пытаюсь написать скрипт, который помещает значения в базу данных SQL.

это простая таблица из 2 столбцов, которая выглядит так:

CREATE TABLE [dbo].[pythonInsertTest](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [value] [varchar](50) NULL

Я попытался выполнить запрос на выборку из python, и это сработало! Так что связь или что-то в этом роде не проблема. но когда я вставляю в таблицу следующий код:

import pymssql
conn = pymssql.connect(server='XXXX', user='XXXX', password='XXXX', database='XXXX')
cursor = conn.cursor()
cursor.execute("insert into pythonInsertTest(value) OUTPUT INSERTED.ID VALUES('test')")
row = cursor.fetchone()
while row:
    print "Inserted Product ID : " +str(row[0])
    row = cursor.fetchone()

ответ:

$? && exit 1
Inserted Product ID : 20
Exit status: 0

Однако, если я посмотрю в своем диспетчере sql и выберу все строки в указанной таблице, строки, которую я только что добавил, там нет... Но когда я вручную вставляю строку через SQL-запрос в менеджере, она добавляется.

Следует отметить, что он пропустил идентификатор, который был «вставлен» через мой скрипт Python.

Кто-нибудь видел это раньше или знает, что делать?


person Mickboe1    schedule 17.09.2015    source источник


Ответы (1)


Ха, я тоже несколько раз ударился об это головой. Насколько я могу судить, вам не хватает оператора фиксации. В соответствии с этим примером добавьте conn.commit(), и, надеюсь, вы быть золотым.

person SteveJ    schedule 17.09.2015