无法绑定多部分标识符'sys.tables'

时间:2014-02-12 18:12:09

标签: c# sql sql-server-2008 database-schema

我有以下SQL查询,试图从我的表中检索属性。它可以在Visual Editor或SSMS中的SQL编辑器中正常运行。

USE UserList; 
SELECT sys.tables.name, value
FROM sys.tables, fn_listextendedproperty(NULL, 'schema', 'dbo', N'table', DEFAULT, NULL, NULL)
WHERE sys.tables.name LIKE 'barn%';

但是当我从我的C#网络应用程序运行它时,我得到错误'Multipart identifier'sys.tables'无法绑定。任何人都可以告诉我这是什么问题吗?

我的C#代码是

string selectCommand = "USE UserList SELECT tables.name, value FROM sys.tables, fn_listextendedproperty(NULL, 'schema', 'dbo', N'table', DEFAULT, NULL, NULL) WHERE tables LIKE '" + myTI.ToLower(User.Identity.Name) + "%';";

UPDATE 当我删除WHERE子句时,即使使用sys.tables.name,此代码也能正常工作。

1 个答案:

答案 0 :(得分:1)

不要在字段列表或WHERE子句中包含模式,只包括表名:

USE UserList; 
SELECT tables.name, value
FROM sys.tables, fn_listextendedproperty(NULL, 'schema', 'dbo', N'table', DEFAULT, NULL, NULL)
WHERE tables.name LIKE 'barn%';