如何处理 table name 里面有 [ ] 方括号?
How to deal with table name with [ ] square brackets inside?
我的代码向 SQL 服务器发出 SQL 查询,例如:
SELECT * FROM [db_name].[schema_name].[table_name];
这一直有效,直到在名为 SLOT_APRX[NOT USED]
的客户 table 上失败。请注意 table 名称中的 [
和 ]
。
那么在 SQL 服务器中转义 table 名称的正确、更安全的方法是什么?
也许引用标识符设置可以帮到您..
SET QUOTED_IDENTIFIER ON
SELECT TOP 10 * FROM "SLOT_APRX[NOT USED]"
转义 ]
,就像在文字字符串中转义 '
:[SLOT_APRX[NOT USED]]]
:
SELECT *
FROM dbo.[SLOT_APRX[NOT USED]]];
然而,理想情况下,您不应该有需要分隔(和转义)的对象名称,这样可以避免这样的问题。
我的代码向 SQL 服务器发出 SQL 查询,例如:
SELECT * FROM [db_name].[schema_name].[table_name];
这一直有效,直到在名为 SLOT_APRX[NOT USED]
的客户 table 上失败。请注意 table 名称中的 [
和 ]
。
那么在 SQL 服务器中转义 table 名称的正确、更安全的方法是什么?
也许引用标识符设置可以帮到您..
SET QUOTED_IDENTIFIER ON
SELECT TOP 10 * FROM "SLOT_APRX[NOT USED]"
转义 ]
,就像在文字字符串中转义 '
:[SLOT_APRX[NOT USED]]]
:
SELECT *
FROM dbo.[SLOT_APRX[NOT USED]]];
然而,理想情况下,您不应该有需要分隔(和转义)的对象名称,这样可以避免这样的问题。