簡體   English   中英

帶空格的表名-PYMSSQL和MSSQL

[英]Table names with spaces - PYMSSQL and MSSQL

我正在使用pymssql python庫連接到MS SQL數據庫以提取數據。

一切正常,直到遇到帶空格的表名。

那是下面的代碼工作正常

import pymssql
conn = pymssql.connect(
  server="11.11.11.11",
  port=1433,
  user="######",
  password="######",
  database="######")
cursor = conn.cursor(as_dict=True)
cursor.execute('SELECT * FROM Students')

雖然這段代碼不會

import pymssql
conn = pymssql.connect(
  server="11.11.11.11",
  port=1433,
  user="######",
  password="######",
  database="######")
cursor = conn.cursor(as_dict=True)
cursor.execute('SELECT * FROM  [Students Info]')

我嘗試使用“和`括起來,但是我收到的錯誤一直在

“無效的對象名稱'Students Info'.DB-Lib錯誤消息208,嚴重性16:\\ n常規SQL Server錯誤:檢查來自SQL Server的消息\\ n”)

我嘗試了多個帶有空格的表,它們始終給出此錯誤。

我還從CLI嘗試了以下操作

tsql -H 11.11.11.11 -p 1433 -U ####### -P ########
1> select * from [Students Info]
2> go

並且錯誤是

來自DAYMAP第1行的消息208(嚴重性16,狀態1):“無效的對象名稱'Student Info'。”

為了嘗試重現此錯誤,我首先創建了一個表並插入了一些數據:

CREATE TABLE [bad idea] (
    [bad idea column] VARCHAR(255)
)

INSERT INTO [bad idea] ([bad idea column]) VALUES ('Spaces in DB entity names are generally a bad idea.')

然后,可以從tsql查詢它:

1> SELECT * FROM [bad idea]
2> GO
Spaces in DB entity names are generally a bad idea.

您確定列名拼寫正確嗎? 您可以共享要編輯的確切列名嗎?例如,它們都是ASCII字符嗎? 您要連接到哪個SQL Server版本? 祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM