写了一个存储过程,将输入的数据保存到一张表中(本来是张空表),用ISNUMERIC判断(暂不纠结PARTINDEX函数),分别判断2个输入的数据,第一个数值写进了空表,但是第二个写不进去,帮忙看下 是IF ELSE 的问题 还是UPDATE的问题SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GOALTER PROC [dbo].[infotrans]
@cp VARCHAR(20),
@cd VARCHAR(20)
AS
BEGINIF 1=ISNUMERIC(@cp)
INSERT INTO temp1(cperson_id) VALUES(@cp)
ELSE
PRINT 'invalid input value:'+CONVERT(VARCHAR(20),@cp)
RETURNIF 1=ISNUMERIC(@cd)
UPDATE temp1 SET cdept_id=@cd WHERE cperson_id=@cp
ELSE
PRINT 'invalid input value:'+CONVERT(VARCHAR(20),@cd)
RETURNEND
GO
SET QUOTED_IDENTIFIER ON
GOALTER PROC [dbo].[infotrans]
@cp VARCHAR(20),
@cd VARCHAR(20)
AS
BEGINIF 1=ISNUMERIC(@cp)
INSERT INTO temp1(cperson_id) VALUES(@cp)
ELSE
PRINT 'invalid input value:'+CONVERT(VARCHAR(20),@cp)
RETURNIF 1=ISNUMERIC(@cd)
UPDATE temp1 SET cdept_id=@cd WHERE cperson_id=@cp
ELSE
PRINT 'invalid input value:'+CONVERT(VARCHAR(20),@cd)
RETURNEND
@cp VARCHAR(20),
@cd VARCHAR(20)
AS
BEGIN
--1.
IF 1=ISNUMERIC(@cp)
INSERT INTO temp1(cperson_id) VALUES(@cp)
ELSE
PRINT 'invalid input value:'+CONVERT(VARCHAR(20),@cp)
--2.
IF 1=ISNUMERIC(@cd)
UPDATE temp1 SET cdept_id=@cd WHERE cperson_id=@cp
ELSE
PRINT 'invalid input value:'+CONVERT(VARCHAR(20),@cd)
END
GO
谢谢帮助 以后再也不乱用returun了
--楼主啊,你想如果不是数字就返回,不在继续执行,你得家begin end,酱紫嘛
IF 1=ISNUMERIC(@cp)
INSERT INTO temp1(cperson_id) VALUES(@cp)
ELSE
begin
PRINT 'invalid input value:'+CONVERT(VARCHAR(20),@cp)
RETURN
end
IF 1=ISNUMERIC(@cd)
UPDATE temp1 SET cdept_id=@cd WHERE cperson_id=@cp
ELSE
Begin
PRINT 'invalid input value:'+CONVERT(VARCHAR(20),@cd)
RETURN
End