的Python 3.4.1 INSERT INTO SQL Azure的(pyodbc)
问题描述:
我试图插入一些数据已经在SQL Azure中创建一个表。的Python 3.4.1 INSERT INTO SQL Azure的(pyodbc)
SQL结构
Field 1 DATE
Field 2 INT
Field 3 INT
Python中的代码:
#I know I have connected to the correct database.
Connection = pyodbc.connect(conn.conn())
cursor = Connection.cursor()
SQLCommand = ('INSERT INTO table_name ([Field 1], [Field 2], [Field 3]) VALUES ('31-Dec-14', 1, 2);')
cursor.execute(SQLCommand)
Connection.commit()
我收到以下错误
pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid column name '31-DEC-2014'. (207)
如果我
SQLCommand = ('INSERT INTO table_name ([Field 1], [Field 2], [Field 3]) VALUES (?, ?, ?);', ('31-DEC-2014',1,2))
cursor.execute(SQLCommand)
Connection.commit()
更换
我收到以下错误
TypeError: The first argument to execute must be a string or unicode query.
我应该如何输入日期和整数到通过Python的SQL Azure的表?
谢谢
答
日期解析器不喜欢你的格式。请参阅Microsoft文档的有效formats
列表下面的语法应工作:
SQLCommand = ("INSERT INTO table_name ([Field 1], [Field 2], [Field 3]) VALUES ('2014-12-31', 1, 2);")
cursor.execute(SQLCommand)
Connection.commit()
答
谢谢你的问题。 我强烈建议你使用pymssql,如果你想使用Python连接到SQL Azure的数据库。 回到你的问题,它取决于创建SQL表时使用的日期时间格式。
这里是你将如何插入使用pymssql对AdventureWorks的模式日期和整数(AdventureWorks的架构是一个预装的模式,你可以与测试创建数据库)。
import pymssql
conn = pymssql.connect(server='yourserver.database.windows.net', user='[email protected]', password='yourpassword', database='AdventureWorks')
cursor = conn.cursor()
cursor.execute("INSERT SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) OUTPUT INSERTED.ProductID VALUES ('SQL Server Express', 'SQLEXPRESS', 0, 0, CURRENT_TIMESTAMP)")
row = cursor.fetchone()
while row:
print "Inserted Product ID : " +str(row[0])
row = cursor.fetchone()
如果您有关于如何在你的机器上安装pymssql疑问,这里是一些参考文档,这将帮助你:)
如果你有任何与Azure SQL DB一起使用pymssql的问题,请让我知道,因为我很乐意提供帮助。
最佳,
符合Bhagdev
项目经理,Microsoft
注释1:我觉得pymssql需要使用 'freetds的' 吗? (即SQL Native Client 11.0)在Windows系统中不起作用? – Harris
注释2:我还是用pymssql收到无效的列名称的错误。我认为这是值得做把日期格式通过Python到SQL。 – Harris
你好哈里斯,它应该在Windows上运行。这里是你如何做到这一点 - https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-python-simple-windows/。另外你的日期格式在你的数据库中是什么样的。上面链接中的代码应该适用于默认日期格式。 –