表名以@开头

wsb*_*wsb 4 sql-server t-sql c# identifier

我的数据库中有一个以@符号开头的表。我可以使用以下查询成功查询它:

select * from [@tablename]
Run Code Online (Sandbox Code Playgroud)

此格式适用于 SSMS 和 Crystal Reports。

但是,我有一个 C# 应用程序,其中相同的查询在表名上给出“无效的对象名称”错误。

有什么建议么?

Sol*_*zky 7

我不认为在 C# 中引用名称以@. 我能够创建一个名为 的表@TableName并能够SELECT SUM(Col1) FROM [@TableName];成功执行。我使用了SqlConnectionand SqlCommand,而不是 EF 或DataSet/ DataTable。您确定要连接到包含该表的数据库吗?

错误消息很可能非常准确,并且您所在的数据库不正确。在连接字符串中指定所需的数据库,或使用完全限定名称:[DatabaseName].[SchemaName].[@TableName]

当然,如果您有选择,那么您不应该选择命名任何以 开头的对象,因为@这是用于表示局部变量、系统变量和输入/输出参数的符号。