[英]MSCRM, sql select error invalid column name
试图从内部 MSCRM 8 中的帐户获取一些数据
我们有 sql 查询如下:
select distinct top 100 acc.accountid,acc.OwnerId, ..., acc.v_ownerid
from account acc
where acc.statecode = 0 and (1=0 or acc.accountid= xxxx)
当我尝试从我的 C# 代码运行此 select 时,出现错误:
System.Data.SqlClient.SqlException:列名“acc.v_ownerid”无效。
数据库中存在 100% 的字段“acc.v_ownerid”
请问可能是哪里出了问题?
彼得
使用 MSCRM on-prem 运行 SQL 对表的查询不受支持。
Microsoft 仅支持针对 MSCRM SQL 数据库的两种操作:
SELECT
查询...例如 FilteredAccount。除了为查找和选项集提供文本值外,过滤视图还在数据库级别强制执行安全性。
您可能想重构您的 SQL 以使用 FilteredAccount 视图,看看您是如何做到的。
另外,请注意 Account 表称为 AccountBase。
名为 Account 的数据库 object 实际上是一个视图(它也不支持查询,因为它不是过滤视图。)
在 SQL 中查询 Accounts 的唯一支持方法是通过 FilteredAccount 视图:
嗯,解决办法就是用这个select
Select distinct top 100 acc.accountid,acc.OwnerId, ..., acc.v_ownerid from
X.dbo.account acc
where acc.statecode = 0 and (1=0 or acc.accountid= xxxx)
代替:
select distinct top 100 acc.accountid,acc.OwnerId, ..., acc.v_ownerid
from account acc
where acc.statecode = 0 and (1=0 or acc.accountid= xxxx)
然后它返回所有列,不知道为什么,但它正在工作......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.