2016-11-20 34 views
3

我的代碼:pyodbc錯誤模式不存在,或者您沒有權限

con = pyodbc.connect("DRIVER={SQL Server};SERVER=WIN-RCNSTVE00SV\SQLEXPRESS;UID=sa;PWD=password;database=master",autocommit=True) 
cursor = con.cursor() 

cursor.execute("create database test_db") 
cursor.execute("create table test_db.tb(id INT NOT NULL IDENTITY(1,1) PRIMARY KEY, random_txt VARCHAR(50), sequence TEXT, status BIT)") 

創建數據庫之後,我不能在裏面創建一個表。我得到這個錯誤:

pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]The specified schema name "test_db" either does not exist or you do not have permission to use it. (2760) 

我試圖在創建數據庫後執行授予權限查詢,但得到相同的錯誤。我也嘗試創建一個新的CON(連接)指定的數據庫,但沒有奏效。請幫忙。

回答

2

你缺少schema名。它應該是

create table test_db.dbo.tb 
(     --^^^ Missing schema name 
id INT NOT NULL IDENTITY(1,1) PRIMARY KEY, 
random_txt VARCHAR(50), 
sequence TEXT, 
status BIT 
) 

完全合格的對象名稱會在這種格式

DatabaseName.SchemaName.ObjectName

如果您有任何其他的模式創建的,你要創建在該模式的新表,然後更換schema namedbo。默認情況下,對象將在dbo方案中創建。如果你想在dbo模式中創建表,那麼你可以這樣寫,以及

Create table test_db..tb() 

..隱含指向dbo模式

+0

的感謝!我還沒有收到有關架構的想法.. –

相關問題