''

时间:2018-03-06 12:16:28

标签: c# sql-server sql-server-2008 dapper

首先我收到了这个错误:

  

无效的对象名称" 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等?我无法解释这一点。

2 个答案:

答案 0 :(得分:2)

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

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

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

由于您的代码适用于\u200B,这意味着实际的表名称包含ffmpeg -i inputVideo -i watermark-tr -i watermark-tl -i watermark-br -i watermark-bl -filter_complex "[0][1]overlay=x=W-w:y=0[tr]; [tr][2]overlay=x=0:y=0[tl]; [tl][3]overlay=x=W-w:y=H-h[br]; [br][4]overlay=x=0:y=H-h" outputfile ,因此也应重命名。

答案 1 :(得分:1)

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