如何摆脱自定义Raiserror - SQL Server的警告消息

时间:2017-08-14 10:32:44

标签: sql sql-server raiserror

我想在未触发更新查询时在屏幕上显示弹出窗口。 我正在使用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操作消除值。

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

1 个答案:

答案 0 :(得分:2)

试试这个:

SET ANSI_WARNINGS OFF

这将取消您所看到的警告。但是看起来它也可以通过在查询中的某处添加NULL检查来修复。我无法说明您的代码尚未发布的详细信息。

如果您确实选择了禁止警告的快速解决方法,请确保在代码中再次启用它,方法是执行以下操作:

SET ANSI_WARNINGS ON