if @@ERROR=66666 begin -- 通過@@ERROR的值來判斷是否是自定義的異常 set @outstr = @outstr + '--- customer exception'; end; return; end catch; go 如上代碼,raiserror參數(shù)說明: (1). Message id : 異常的唯一標識,且這個值會被賦值給SQLServer的系統(tǒng)變量@@Error。自定義異常的Message Id建議使用...
RAISERROR('Warning: No such row is updated',16,1) RETURN END COMMIT TRAN TransID SET @NextID = @NextTKey GO 執(zhí)行存儲過程UP_NewTableID: 復制代碼代碼如下: DECLARE @NextID INT EXEC UP_NewTableID 'T001',@NextID OUTPUT PRINT @NextID ...
1)用TRY/CATCH 替代 @@ERROR這種更科學,其一@@ERROR沒有TRA/CATCH直觀,其二遇到錯誤級別在11-19的錯誤,錯誤會使運行直接中斷,導致@@ERROR判斷錯誤與否無效。 2)使用RAISERROR 拋錯 WITH LOG,當嚴重級別大于等于19時,需要使用這個選項 WITH SETERROR,使其重寫@@ERROR值,方便外部調(diào)用 ...
RAISERROR ('Transaction cannot be processed.\ *** Employee ID number cannot be modified.', 10, 1) ROLLBACK TRANSACTION END INSTEAD OF觸發(fā)器的工作過程 可以在表或視圖上指定INSTEAD OF觸發(fā)器。執(zhí)行這種觸發(fā)器就能夠替代原始的觸發(fā)動作。INSTEAD OF觸發(fā)器擴展了視圖更新的類型。對于每一種觸發(fā)動作(INSERT...
raiserror(15143,-1,-1,@updateusage) return(1) end end /* ** Check to see that the objname is local. */ if @objname IS NOT NULL begin select @dbname = parsename(@objname, 3) if @dbname is not null and @dbname <> db_name() ...
if not exists(select 1 from sysobjects where name = @tablename and xtype = 'u') begin raiserror 20001 '沒有這個表' return -1 end --- if exists(select 1 from syscolumns where id = object_id(@tablename) and name = @colname) begin raiserror...