7
  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 中根本没有表。

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

4

3 回答 3

6

我认为您需要cnxn.commit()cnxn.close(). 这就是您如何将程序中所做的更改保存到数据库中

于 2017-01-31T18:44:09.793 回答
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...
于 2012-10-02T01:42:14.280 回答
1

在关闭连接之前,您的语句没有提交语句。在and语句cnxn.commit()之前使用语句。cursor.close()cnxn.close()

于 2018-09-14T19:03:43.060 回答