我有这个查询针对2008R2运行。 tblJoin
是两个表(tblIncident
和tblPatron
)之间用于多对多关系的表。
当我在VS2012中构建查询时,在查询生成器窗口中执行查询时,它运行正常,并为我提供了所需的结果。但是在最后一步中,当我单击TestQuery并输入参数时,它会出错:
"Failed to enable constraints.."
我检查了数据类型,它们在表格中相互匹配,
SELECT tblIncident.Inci_ID,
_tblJoin.PatronID,
_tblJoin.LName,
_tblJoin.FName,
_tblJoin.MI
FROM tblJoin INNER JOIN
tblIncident ON tblJoin.InciID = tblIncident.Inci_ID AND tblJoin.InciID = tblIncident.Inci_ID
WHERE (tblIncident.Inci_ID = @Inci_ID)
答案 0 :(得分:0)
您需要检查DataTable中列的所有MaxLength属性。
我从“nvarchar(512)”更改为“nvarchar(MAX)”的列在MaxLength属性上仍然具有512值,因此我更改为“-1”并且它正常工作!!。
您可以通过此讨论解决此问题
有很多答案......
答案 1 :(得分:0)
感谢Ramesh和Vignesh。 Vignesh的评论让我想到了重复的外键。所以我保留了查询,但删除了外键(事件ID),这使它工作。这就是我的查询的样子:
SELECT tblJoin.PatronID, tblJoin.LName, tblJoin.FName, tblJoin.MI FROM tblJoin
INNER JOIN tblIncident ON tblJoin.InciID = tblIncident.Inci_ID
WHERE (tblIncident.Inci_ID = @Inci_ID)