我有一个查询(下面的假设示例)
if not exists(select productID from Products where supplierID=3)insert into Products(productName, price) values('Socks', 23)
我想要做的是在Products
表中插入记录,如果没有任何其他记录存在同一supplierID
。我上面的查询工作正常。执行此查询后我想要检查的是productID
如果找到记录并使用它将记录插入另一个表,比如说invoices
。我正在尝试使用count
执行此操作,但这并非常有帮助。(始终解析为else
语句。
int count=query.ExcecuteNonQuery();
if(count==1){
return "found";
}
else{
return "not found";
}
任何能为此提供有效解决方案的人都可以提供帮助吗?
更新
所以我在Management Studio中尝试了这个。
declare @row int if not exists(select productID from Products where supplierID=3)insert into Products(productName, price) values('Socks', 23) select @rows=@@rowcount select @rows as rows
当我在Management studio中运行此查询时,如果没有插入行,则返回0
;如果插入了行,则返回1
但是当我尝试在我的代码中复制查询时{{1} } alert
每次都显示rows
。为什么会这样?
答案 0 :(得分:1)
也许,您可以尝试使用@@ ROWCOUNT = 0然后插入其他表中。如果您的查询找不到任何行,则返回0。但是您必须在查询后立即使用它,因为它仅存储上次执行查询的信息。
我不确定这可以帮助你,但我会尝试以这种方式解决这个问题......