1

当没有触发更新查询时,我想在屏幕上显示一个弹出窗口。我正在使用 Raiserror 引发错误并显示自定义错误消息,该消息显示在弹出窗口中。

if(some condition)
begin

update  Tab1vendorInside
set 
VendorBatchCode=a.VendorBatchCode,
Quantity=a.Quantity,--case  When (PlannedDispatchQty>=a.Quantity) then a.Quantity  Else 0 end,
OfferedForInspectionOn=convert(varchar(80),convert(date, getdate())),
[Time]=convert(varchar(8), convert(time, getdate())) ,
CTDTDSReference=a.CTDTDSReference,
Certificateupload=a.Certificateupload,
Active=a.Active
from @TP a
inner join Tab1vendorInside 
on a.ID=Tab1vendorInside.ID and
a.Material=Tab1vendorInside.Material
and Datepart(mm,a.PlannedDispatchQtyDate)=Datepart(mm,Tab1vendorInside.PlannedDispatchQtyDate)
and Datepart(year,a.PlannedDispatchQtyDate)=Datepart(year,Tab1vendorInside.PlannedDispatchQtyDate)
inner join Tab1Vendor
on Tab1Vendor.Material=a.Material and Tab1Vendor.ID=a.TaboneVendorID
and Datepart(mm,a.PlannedDispatchQtyDate)=Datepart(mm,Tab1Vendor.PlannedDateofDispatch)
and Datepart(year,a.PlannedDispatchQtyDate)=Datepart(year,Tab1Vendor.PlannedDateofDispatch)
end

else
begin
--if it enters else, logically it means that the data is updated.
begin try
select 16/0
end try
begin catch
RAISERROR('Quantity limit exceeded! Data insert/update failed.',16,1);  
end catch
end

好吧,它工作正常,但问题是,我收到了附加到我的自定义消息的附加消息。

超出数量限制!数据插入/更新失败。警告:空值被聚合或其他 SET 操作消除。

我想摆脱警告空值被消除......等等我应该怎么做?

4

1 回答 1

2

尝试这个:

SET ANSI_WARNINGS OFF

这将抑制您看到的警告。但是,它看起来也可以通过在查询中的某处添加 NULL 检查来修复。我不能说你的代码没有发布完整的细节。

如果您确实选择了抑制警告的快速修复,只需确保您之后在代码中再次启用它,方法是执行以下操作:

SET ANSI_WARNINGS ON
于 2017-08-14T10:35:44.173 回答