“'附近的语法不正确

问题描述 投票:0回答:2

首先我得到了这个错误:

无效的对象名称“product_images _temporary”

在我添加了[]括号后,一切正常。但是当我再次删除它们时,我收到了这个错误:

“'附近的语法不正确

为什么这样做:

[product_images​_temporary]

但是这会引发异常(“'''附近的语法不正确):

product_images​_temporary

更多代码:

try
{
    using (var sqlConnection = new DapperHelper().DatabaseConnection())
    {
        var sqlStatement = "SELECT * FROM product_images​_temporary";

        sqlConnection.Execute(sqlStatement);
    }
}
catch (Exception e)
{
}

product_images​_temporary是SQL Server中的保留字吗?像datetime等?我无法解释这一点。

c# sql-server sql-server-2008 dapper
2个回答
2
投票

s_之间是Unicode零宽度空间字符\u200B。这是不可见的,因此使字符串不像它看起来那样。

此字符在SQL对象标识符名称中不合法,并且是您看到的错误的原因,使用[]转义使其合法。

只需手动重新键入名称或在两个字符之间双重删除。

由于您的代码与[]一起使用,这意味着实际的表名包含\u200B,因此也应该重命名。


1
投票

只需重命名该表,您的表名中就会有一个不可见的字符

© www.soinside.com 2019 - 2024. All rights reserved.