我有以下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,此代码也能正常工作。
答案 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%';