首页 > 解决方案 > 使用 if then 语句更改存储过程

问题描述

    CREATE PROCEDURE usp_remove_vendor
    @Vendor varchar(50)
    AS
    DECLARE 
    @vendorid  char(10);
    BEGIN  SET @vendorid = (SELECT vend_id FROM vendors WHERE vend_name = @Vendor );
    DELETE from  products where vend_id =@vendorid;
    DELETE from vendors where vend_id =@vendorid;
    END

如果参数中的供应商名称 (@vname) 甚至在供应商列表中,我需要更改语句验证的帮助。修改所以如果供应商在系统中,删除它们,否则你想显示一条消息'未找到供应商'又名(IF THEN 语句)

要确定局部变量是否为空,请考虑查看它的长度(查找 LEN() 的参考 - 请注意,如果您喜欢以不同的方式执行它也可以。使用 PRINT 输出“未找到供应商”

标签: sqlstored-proceduresalter

解决方案


这可能会帮助你......

CREATE PROCEDURE usp_remove_vendor
    @Vendor varchar(50)
    AS
    BEGIN
        DECLARE @vendorid  char(10), @result NVARCHAR(50);
        SELECT @vendorid=vend_id FROM vendors WHERE vend_name = @Vendor;

        IF @vendorid IS NULL OR @vendorid=''
        BEGIN
            SET @result='Vendor not found'
            print 'Vendor not found'
        END
        ELSE
        BEGIN

            DELETE from  products where vend_id =@vendorid;
            DELETE from vendors where vend_id =@vendorid;
            SET @result='Vendor deleted successfully.'
        END
        SELECT 'Result'=@result

    END

说明 我使用了 Result 变量来返回结果,无论是否找到了供应商?


推荐阅读