通过pymssql插入但数据库中不显示任何行

时间:2015-09-17 13:40:11

标签: python sql sql-server pymssql

我对python很新,我试图编写一个将值放入SQL数据库的脚本。

它是一个简单的2列表,如下所示:

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

我尝试从python做一个select查询,但是有效!所以连接或任何类型的东西都不是问题。但是当我使用以下代码插入表格时:

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查询手动插入一行时,它会添加。 / p>

请注意,它确实跳过了ID" insert"通过我的python脚本。

之前有人见过或知道该怎么做?

1 个答案:

答案 0 :(得分:5)

哈,我也曾几次对此表示不满。据我所知,你错过了一个提交声明。根据这个example,添加一个conn.commit(),希望你会成为金色的。