【问题标题】:pyodbc error schema does not exist or you do not have permissionpyodbc 错误架构不存在或您没有权限
【发布时间】:2016-11-20 13:10:36
【问题描述】:

我的代码:

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) 指定数据库,但没有奏效。请帮忙。

【问题讨论】:

    标签: python sql-server database pyodbc


    【解决方案1】:

    您缺少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 架构

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-09
      • 2021-10-03
      相关资源
      最近更新 更多