我在SQL2008触发器时,将数据表已有的字段由字符型转换为数值型,触发器写好保存后,在做单据保存时,提示'从数据类型varchar转换为numeric时出错'
触发器如下:create trigger [dbo].[触发器名] on [dbo].[表名]
for insert
as
set nocount on
declare @A_TMP decimal(28,10)
select @A_TMP=convert(decimal(28,10),'字符型字段') - FSecCoefficient(数值型字段) from inserted
if @a_tmp<>0
BEGIN
ROLLBACK TRAN
RAISERROR('类型不匹配,不能保存!',18,18)
END后来也试过cast('字符型字段' as decimal(28,10)) 也报错,请高手指点
触发器如下:create trigger [dbo].[触发器名] on [dbo].[表名]
for insert
as
set nocount on
declare @A_TMP decimal(28,10)
select @A_TMP=convert(decimal(28,10),'字符型字段') - FSecCoefficient(数值型字段) from inserted
if @a_tmp<>0
BEGIN
ROLLBACK TRAN
RAISERROR('类型不匹配,不能保存!',18,18)
END后来也试过cast('字符型字段' as decimal(28,10)) 也报错,请高手指点
更新字段 = case isnumeric(字段) when 1 then cast('字符型字段' as decimal(28,10))
else 0 end -- 如果不是数值类型,设为0,具体是0还是其他楼主自己定。