日期:2014-05-18  浏览次数:20489 次

请问查询结果为1后更新。
弱弱的问一个问题:
思路是:
1、存储过程 接受4个参数。
2、先查询一下 记录。。当符合条件的记录为1时。
3、更新 记录。否则就不更新。
请指教。谢谢。


CREATE proc test @param1 smallint ,@param2 varchar(14),@param3 smallint,@param4 Varchar(50)
as
if 
select * from comProd where flag=isnull(@param1,'')and billNO=isnull(@param2,'')and RowNO=isnull(@param3,'') =1
then 

 update comProd set UDEF1= @param3 where where flag=isnull(@param1,'')and billNO=isnull(@param2,'')and RowNO=isnull(@param4,'')

GO


------解决方案--------------------
SQL code
CREATE proc test 
@param1 smallint ,
@param2 varchar(14),
@param3 smallint,
@param4 Varchar(50)
as
begin
if  
(select * from comProd 
where flag=isnull(@param1,'')and billNO=isnull(@param2,'')and RowNO=isnull(@param3,'') =1)
then  

 update comProd set UDEF1= @param3 where where flag=isnull(@param1,'')and billNO=isnull(@param2,'')and RowNO=isnull(@param4,'')
else
return
end
GO

------解决方案--------------------
SQL code

create proc test @param1 smallint, @param2 varchar(14), @param3 smallint, @param4 Varchar(50)
as
begin
if ((select count(1) from comProd where flag=isnull(@param1,'')and billNO=isnull(@param2,'')and RowNO=isnull(@param3,''))=1)
  update comProd 
  set UDEF1= @param3 
  where flag=isnull(@param1,'')and billNO=isnull(@param2,'')and RowNO=isnull(@param4,'')
end