2016-11-20 1 views
3

Mein Code hat:Pyodbc Fehler Schema nicht vorhanden ist oder Sie keine Berechtigung

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)") 

Nach der Erstellung der Datenbank, ich bin nicht in der Lage, eine Tabelle in ihm zu erstellen. Ich bekomme diese Fehlermeldung:

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) 

Ich habe versucht, die Gewährung Erlaubnis Abfrage nach der Datenbank erstellen Ausführung bekam aber den gleichen Fehler. Ich versuchte auch, einen neuen con (Verbindung) zu verursachen, der die Datenbank spezifiziert aber nicht arbeitete. Bitte helfen Sie.

Antwort

2

Sie vermissen schema name. Es sollte

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 
) 

Ein vollständig qualifizierte Objektname

in diesem Format werden seine

DatabaseName.SchemaName.ObjectName

Wenn Sie irgendein anderes Schema erstellt hat und Sie die neue Tabelle in diesem Schema erstellen dann die schema name ersetzen dbo. Standardmäßig werden die Objekte im dbo Schema erstellt. Wenn Sie die Tabelle in dbo Schema erstellen möchten, dann können Sie so schreiben, wie gut

Create table test_db..tb() 

.. verweist implizit auf die dbo Schema

+0

Dank! Ich hatte keine Ahnung von Schema .. –

Verwandte Themen