- 论坛徽章:
- 0
|
CREATE PROC GRP_OP
@ID INT, /* 输入-表ID */
@DEPARTMENT_ID SMALLINT,
@USERNAME VARCHAR(32),
@Op TINYINT, /* 输入-操作类型 0--插入,1--修改,2--删除 */
@ReturnID INT OUTPUT,
@Explain VARCHAR(32) OUTPUT /* 输出-错误消息 */
AS
DECLARE @OLD_DEPARTMENT_ID smallint
DECLARE @OLD_USERNAME varchar(32)
SET @ReturnID=-1
SET @Explain='未知错误类型'
IF @Op = 0 /* 插入 */
IF (SELECT USERNAME FROM SMBS_USERS WHERE DEPARTMENT_ID=@DEPARTMENT_ID AND USERNAME=@USERNAME AND GRP=1) IS NOT NULL /* 是否存在该名称 */
BEGIN
SET @Explain='在组中已存在 ' + @USERNAME
RETURN
END
ELSE
BEGIN
INSERT INTO SMBS_USERS(DEPARTMENT_ID,USERNAME, GRP) VALUES (@DEPARTMENT_ID,@USERNAME,1)
SELECT @ReturnID=USER_ID FROM SMBS_USERS WHERE DEPARTMENT_ID=@DEPARTMENT_ID AND USERNAME=@USERNAME AND GRP=1
END
IF @Op = 1 /* 修改 */
BEGIN
SELECT @OLD_DEPARTMENT_ID=DEPARTMENT_ID,@OLD_USERNAME=USERNAME FROM SMBS_USERS WHERE USER_ID=@ID
IF ((@OLD_DEPARTMENT_ID != @DEPARTMENT_ID) OR (@OLD_USERNAME != @USERNAME))
IF (SELECT USERNAME FROM SMBS_USERS WHERE DEPARTMENT_ID=@DEPARTMENT_ID AND USERNAME=@USERNAME AND GRP=1) IS NOT NULL
BEGIN
SET @Explain='在组中已存在 ' + @USERNAME
RETURN
END
ELSE
BEGIN
UPDATE SMBS_USERS SET DEPARTMENT_ID=@DEPARTMENT_ID,USERNAME=@USERNAME WHERE USER_ID=@ID
SELECT @ReturnID=USER_ID FROM SMBS_USERS WHERE DEPARTMENT_ID=@DEPARTMENT_ID AND USERNAME=@USERNAME AND GRP=1
END
END
IF @Op = 2 /* 删除 */
EXECUTE GRP_DELETE @ID
SET @Explain='执行成功'
RETURN
GO
下面的if我不知道怎么改 |
|