0

SQLServer2008でトリガーを作成しました

CREATE TRIGGER [dbo].[ITEM_UOM_DELETE] ON
   [dbo].[ITEM_UOM] INSTEAD OF DELETE
   AS
      declare @rowc int
      set @rowc = (select count(*) from stock, deleted where 
      item = deleted.itemcode and uom = DELETED.MAINUNIT AND DOCTYPE <> 'OP')
         if @rowc > 0
         begin
           raiserror('Unit is in Use Cannot Delete', 16, 1)
           rollback transaction
         end

このトリガーを実行すると、エラー出力が表示されます

メッセージ50000、レベル16、状態1、プロシージャITEM_UOM_DELETE、行11
ユニットは使用中です
メッセージ3609、レベル16、状態1、行1を削除できません
トランザクションはトリガーで終了しました。バッチは中止されました。

定義されたエラーのみが必要

使用中のユニットは削除できません

エラーを削除する方法'トランザクションはトリガーで終了しました。バッチは中止されました。」?

4

1 に答える 1

0
CREATE TRIGGER [dbo].[ITEM_UOM_DELETE] ON
[dbo].[ITEM_UOM] INSTEAD OF DELETE
AS
BEGIN

declare @rowc int
select @rowc=count(*) from stock

if @rowc <= 0
begin
deleted uom from [ITEM_UOM] uom inner join deleted on uom.item = deleted.itemcode 
and uom.MAINUNIT = DELETED.MAINUNIT where uom.DOCTYPE <> 'OP'
end
else
begin
raiserror('Unit is in Use Cannot Delete', 16, 1)
end

end
于 2012-10-22T07:07:40.790 に答える