代码之家  ›  专栏  ›  技术社区  ›  Tadej

“”附近的语法不正确

  •  0
  • Tadej  · 技术社区  · 7 年前

    首先,我遇到了以下错误:

    无效的对象名称“product\u images–of thelamporary”

    在我添加了 [] 支架,一切正常。但当我再次删除它们时,我得到了以下错误:

    “–of‹”附近的语法不正确

    为什么会这样:

    [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 等我无法解释这一点。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Alex K.    7 年前

    s 以及 _ 是Unicode零宽度空格字符 \u200B 。这是不可见的,因此会使字符串看起来不一样。

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

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

    正如您的代码所使用的 [] 这意味着实际表名包含 \u200B 所以也应该重新命名。

        2
  •  1
  •   Alex Coronas    7 年前

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