带空格的表名 - PYMSSQL和MSSQL

时间:2015-10-22 05:07:34

标签: python sql sql-server pymssql

我正在使用pymssql python库连接到MS SQL数据库来提取数据。

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

这是下面的代码可以正常工作

getAllRelationships

虽然此代码不会

get_all_relationships

我尝试过使用“和`来封闭,但我收到的错误始终是

  

“无效的对象名称'学生信息'.DB-Lib错误消息208,   严重级16:\ n一般SQL Server错误:检查SQL中的消息   服务器\ n“个)

我尝试过多个带空格的表格,并且一直都会出现此错误。

我还从CLI

尝试了以下内容
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')

并且错误已经

  

来自DAYMAP第1行的消息208(严重级16,状态1):“无效的对象   名称'学生信息'。“

1 个答案:

答案 0 :(得分:1)

为了尝试重现此错误,我首先创建了一个表并插入了一些数据:

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版本?祝你好运。