使用Python脚本在MS SQL数据库中创建表的问题

时间:2012-10-02 01:16:07

标签: python sql sql-server

  import pyodbc
  cnxn = pyodbc.connect('DRIVER={SQL Server};' +
                           'SERVER=' + data.dbConnection()[0] + ';' +
                           'DATABASE=' + data.dbConnection()[3] + ';' +
                           'UID=' + data.dbConnection()[1] + ';' +
                           'PWD=' + data.dbConnection()[2])
  cursor = cnxn.cursor()
  cursor.execute(
  """
  CREATE TABLE Persons
  (
  P_Id int,
  LastName varchar(255),
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255)
  )
  """
             )
  cursor.close()
  cnxn.close()

上面的代码成功连接到数据库。该脚本在运行时也不会返回任何错误,但是当我去检查表是否已创建时,SQL DB中根本没有表。

为什么没有创建表格,为什么没有返回错误?

2 个答案:

答案 0 :(得分:4)

我认为你需要在close()之前添加“cnxn.commit()”命令。多数民众赞成如何将程序中所做的更改保存到数据库

答案 1 :(得分:3)

MS SQL Server中的每个用户都有一个与之关联的默认架构。配置详细信息取决于SQL Server的版本,并在企业管理器中配置。我不认为SQL Management studio有GUI可见性。
您可以尝试使用以下方法查询它:

select default_schema_name
, type_desc
, name
, create_date
from sys.database_principals
order by default_schema_name
, type_desc
, name

您还可以通过在模式名称前加上表名,即

,在特定模式中显式创建表
create myschema.mytable as...