<code>session.query()</code>

问题描述 投票:0回答:2
我看到ORM创建的查询在

TableName

.
上有方括号。

SELECT [mb.Tecnico].cod_tecnico AS [mb.Tecnico_cod_tecnico], [mb.Tecnico].nome AS [mb.Tecnico_nome], [mb.Tecnico].login AS [mb.Tecnico_login], [mb.Tecnico].senha AS [mb.Tecnico_senha] FROM [mb.Tecnico] ORDER BY [mb.Tecnico].nome

当标识符的名称不符合常规标识符的规则时,必须通过双引号或括号进行界定。

MMSDN

上的“常规标识符规则”
  
不允许安装的空间或特殊字符。
python sql-server sqlalchemy pyodbc
2个回答
0
投票

我认为这是因为在MSSQL中,方括号不能包围完全合格的桌子名称,包括模式,但必须分别出现在模式和名称与schema的名称周围。 换句话说,您不能写[mb.Tecnico],但必须说

[mb].[Tecnico]
,否则将其毫无疑问为
    mb.Tecnico
  1. 。 如果您引用
  2. ""
而不是
[]

0
投票
我的猜测是,您将字符串作为表名为Sqlalchemy,然后将其全部引用,从而产生无效的SQL。 您需要以某种方式指定模式名称

mb.Tecnico

和名称 -  schema
mb
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.