sql server 存储过程create PROCEDURE [dbo].[Adm_ProductNormAdd]
@NormName nvarchar(20),-----名称
@NormID varchar(20),----ID AS
begin
declare @rID varchar(10)-----产品规格自增编号
if(exists(select RulsName from tDataRuls where RulsName=@NormName ))
begin
return -1;----产品规格名称存在
end
if(exists (select RulsID from tDataRuls where RulsID=@NormID ))
begin
return -2;-----识别码存在
endinsert into tDataRuls
(RulsName, RulsID)
values
(@NormName,@Normid )
select @rID=@@identity;
return @rID;
ENDmysql 存储过程,return 用什么来代替呢?我现在用的是set赋值 为啥语法不对呢?CREATE PROCEDURE `test`.`Adm_ProductNormAdd` (
NormName VARCHAR (20),
NormID VARCHAR (20),
OUT ret INT
)
BEGINDECLARE rID VARCHAR(10);IF(EXISTS(SELECT RulsName FROM tDataRuls WHERE RulsName=NormName ))
SET ret=-1;
END IFINSERT INTO tDataRuls
(RulsName, RulsID)
VALUES
(NormName,Normid);SELECT rID=LAST_INSERT_ID();
SET @rID=rID;END $$
这句话在mysql 存储过程或自定义函数里面不能执行吗?错误在哪呀
IF(EXISTS(SELECT RulsName FROM tDataRuls WHERE RulsName=NormName))
CREATE PROCEDURE `test`.`Adm_ProductNormAdd` ( NormName VARCHAR (20), NormID VARCHAR (20), OUT ret INT) BEGINDECLARE rID VARCHAR(10);IF(EXISTS(SELECT RulsName FROM tDataRuls WHERE RulsName=NormName )) THEN RETURN -1;END IF;INSERT INTO tDataRuls (RulsName, RulsID) VALUES (NormName,Normid);
/*
SELECT rID=LAST_INSERT_ID();SET @rID=rID;
*/
END $$