在SQL server 2008 R2上从python3.2和win7上的pyodbc创建表时出错

2024-09-30 05:15:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从win7上的eclipsepydev(python3.2)访问sqlserver2008r2。在

我需要在数据库上创建一个表。在

代码可以很好地运行。但是,我不能在数据库中创建表。 如果我打印sql字符串并从SQLServerManagementStudio运行查询,则没有问题。在

import pyodbc
sql_strc = " IF OBJECT_ID(\'[my_db].[dbo].[my_table]\') IS NOT NULL \n"
sql_strc1 = " DROP TABLE [my_db].[dbo].[my_table] \n"  

sql_stra = " CREATE TABLE [my_db].[dbo].[my_table] \n" 
sql_stra1 = "(\n"
sql_stra1a = " person_id INT NOT NULL PRIMARY KEY, \n"
sql_stra1b = " value float NULL, \n"
sql_stra1r = "); \n"

sql_str_create_table = sql_strc + sql_strc1 + sql_stra + sql_stra1 + sql_stra1a + sql_stra1b + sql_stra1r

# create table
sql_str_connect_db  = "DRIVER={SQL server};SERVER={my_db};DATABASE={my_table};UID=my_id; PWD=my_password" 
cnxn = pyodbc.connect(sql_str_connect_db)
cursor = cnxn.cursor()
cursor.execute( sql_str_create_table)

任何帮助都将不胜感激。在

谢谢


Tags: 数据库dbsqlmyconnectcreatetablenot
1条回答
网友
1楼 · 发布于 2024-09-30 05:15:19

Autocommit是{a2},请添加以下内容以提交更改:

cnxn.commit()

一些关于提高代码可读性的主动建议:

  1. 从SQL字符串中删除不必要的转义字符
  2. 定义多行字符串时,请使用三引号(""")语法。换行符被保留,不需要显式添加。在
  3. connect函数调用中使用关键字(这很简单,但我认为这会使格式化更容易)

通过这些更改,您的最终代码如下所示:

^{pr2}$

相关问题 更多 >

    热门问题