python-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(connection)指定数据库,但是没有用.请帮忙.

解决方法:

您缺少架构名称.它应该是

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

如果您创建了任何其他架构,并且想要在该架构中创建新表,则将架构名称替换为dbo.默认情况下,将在dbo模式中创建对象.如果要在dbo模式中创建表,则也可以这样编写

Create table test_db..tb()

..隐式指向dbo模式

上一篇:Python SQL更新查询:预期使用字符串或整数地址代替实例实例


下一篇:python-异常值:(“ 08001”,“ [08001] [unixODBC] [FreeTDS] [SQL Server]无法连接到数据源(0)(SQLDriverConnect)”)