2016-11-20 33 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

的感谢!我还没有收到有关架构的想法.. –

相关问题