我的代码:
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模式