CREATE TRIGGER yin_inert_icitem ON [dbo].[t_ICItem]
FOR INSERT, UPDATE
AS
declare @fbatchmanager int
select @fbatchmanager=fbatchmanager
from inserted
if @fbatchmanager<>1
begin
RAISERROR ('物料必须启用批次管理,否则不能保存',
16, 1)
rollback
end触发器的作用是启到了,可是提示的信息是:输入的数据超出范围,请重新输入.
并没有按我定义的提示信息:物料必须启用批次管理,否则不能保存,不知道是什么问题
FOR INSERT, UPDATE
AS
declare @fbatchmanager int
select @fbatchmanager=fbatchmanager
from inserted
if @fbatchmanager<>1
begin
RAISERROR ('物料必须启用批次管理,否则不能保存',
16, 1)
rollback
end触发器的作用是启到了,可是提示的信息是:输入的数据超出范围,请重新输入.
并没有按我定义的提示信息:物料必须启用批次管理,否则不能保存,不知道是什么问题
FOR INSERT, UPDATE
AS
declare @fbatchmanager int
select @fbatchmanager=fbatchmanager
from inserted
if @fbatchmanager <>1
begin
RAISERROR ('物料必须启用批次管理,否则不能保存',16, 1)
rollback
end
--
如果确定是触发器这里出了问题,那么请确保下面正确
declare @fbatchmanager int
select @fbatchmanager=fbatchmanager
from inserted
也就是说fbatchmanager 是否越界
如你定义 a varchar(5) 而你插入了6个长度的串。应该不是触发器
返回用户定义的错误信息并设系统标志,记录发生错误。通过使用 RAISERROR 语句,客户端可以从 sysmessages 表中检索条目,或者使用用户指定的严重度和状态信息动态地生成一条消息。这条消息在定义后就作为服务器错误信息返回给客户端。语法
RAISERROR ( { msg_id | msg_str } { , severity , state }
[ , argument [ ,...n ] ] )
[ WITH option [ ,...n ] ]
from inserted 你可以看一下fbatchmanager 值是多少啊,估计你说的提示是其他触发器的提示,或是RAISERROR ('物料必须启用批次管理,否则不能保存', 16, 1) 之前的错误提示,而不是用户自己写的提示你这写的是金蝶K3的不?呵呵。