pyodbc错误架构不存在或您没有权限

时间:2016-11-20 13:10:37

标签: python sql-server database 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)

我尝试在create database之后执行grant permission查询,但得到了同样的错误。我也尝试创建一个新的con(连接)指定数据库,但没有工作。请帮忙。

1 个答案:

答案 0 :(得分: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 name替换为dbo。默认情况下,将在dbo模式中创建对象。如果要在dbo模式中创建表,那么您也可以像这样编写

Create table test_db..tb()

..隐式指向dbo架构