帮忙修改个存储过程,急,谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/07 04:21:18
这个是access中的代码
UPDATE DISTINCTROW JikouDataSpTank LEFT JOIN (TankMas RIGHT JOIN SpTankMasMeisai ON TankMas.TankNo = SpTankMasMeisai.TankNo) ON JikouDataSpTank.GenryoCode = SpTankMasMeisai.GenryoCode SET TankMas.GenryoCode = [SpTankMasMeisai].[GenryoCode]
WHERE (((TankMas.TankNo)=[SpTankMasMeisai].[TankNo]) AND ((SpTankMasMeisai.GenryoCode)=[JikouDataSpTank].[GenryoCode]));
把它改成sqlserver里面的存储过程。谢谢

exec('update SupplyplanLack set Completedate = GetDate()
from supplyPlanLack a where '+ @ssTmp +' and
'+@iCompleteQty+' >= (select s.RequestQty * a.RationQty as ReqQty
from Balance a, SupplyPlan s where a.Vehicle = s.Vehicle
and a.Part=s.Part and a.SupplyPlanNo = s.SupplyPlanNo
and '+ @ssTmp +')')

在print中,需要注意类型的转换,一般是借用 convert(varchar(11),@spNOTo) 方法来实现,否则会提示类型转换错误!

错误处理上,对于Sqlserver可以采用开始自定义变量,然后根据不同判断,改变该值然后推出的方法来处理,见下例

set @exec_num=0

if (@spNOFrom=0 or @spNOTo=0 or @reuseUser=NULL)
begin
set @exec_num=1
goto the_end
end

the_end:
return

或者是这种:
set nocount on

if (@property is null) or (@property = '')
begin
raiserror('Must specify a property name.',-1,-1)
return (1)
end