存储过程的使用

alter和create区别

create为创建存储过程

 create procedure [dbo].[student]
    {
@SYS_ACTION char(3),  --"ADD"表示增加,"UPD"表示修改,"DEL"表示删除
        @OutId int = NULL out, --插入数据成功以后,返回插入数据对应的自增字段ID值//out为
        @RunRowCount int = NULL out, --返回除SELECT操作外的脚本执行以后表受影响的行数
        @id	int = NULL,	--主键,自增
        @name	int = NULL,
            @sex varchar(32) = NULL,
            @phone varchar(32) = NULL,
            @addr	varchar(32) = NULL,
            @back  varchar(32) = NULL,
            @money  decimal(12,2) = NULL,
            @heig decimal(12,2) = NULL
)
        AS
        IF @SYS_ACTION = 'ADD'
        BEGIN
        INSERT INTO student (id,name,sex,phone,addr,back,heig)
        VALUES (@id,@name,@sex,@phone,@addr,0,0)
        SET @outId = scope_identity()
        END

    }

首先如果使用alter修改存储过程。向存储过程中添加判断。

 ALTER PROCEDURE [dbo].[student]
            (
    @SYS_ACTION char(3),  --"ADD"表示增加,"UPD"表示修改,"DEL"表示删除,"INF"表示获取基本信息,"LST"表示获取全部列表数据
    @OutId int = NULL out, --插入数据成功以后,返回插入数据对应的自增字段ID值//out为
    @RunRowCount int = NULL out, --返回除SELECT操作外的脚本执行以后表受影响的行数
    @id	int = NULL,	--主键,自增
    @name	int = NULL,
    @sex varchar(32) = NULL,
    @phone varchar(32) = NULL,
    @addr	varchar(32) = NULL,
    @back  varchar(32) = NULL,
    @money  decimal(12,2) = NULL,
    @heig decimal(12,2) = NULL
)
    AS
    IF @SYS_ACTION = 'ADD'
    BEGIN
    INSERT INTO student (id,name,sex,phone,addr,money,heig)
    VALUES (@id,@name,@sex,@phone,@addr,0,0)
    SET @outId = scope_identity()
    END
    IF @SYS_ACTION = 'UPD'
    BEGIN
    UPDATE student
    SET id=@id,name=@name,sex=@sex,phone=@phone,addr=@addr,heig=@heig
    WHERE name= @name
            SET @RunRowCount = @@ROWCOUNT
    END
    IF @SYS_ACTION = 'DEL'
    BEGIN
    DELETE student
    WHERE id = @id
            SET @RunRowCount = @@ROWCOUNT
    END

你可能感兴趣的:(存储过程的编写)