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

3

MS SQL Server の各ユーザーには、関連付けられた既定のスキーマがあります。構成の詳細は SQL サーバーのバージョンによって異なり、Enterprise Manager で構成されます。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 に答える