【问题标题】:Altering Stored Procedure with if then Statement使用 if then 语句更改存储过程
【发布时间】:2021-03-03 06:13:50
【问题描述】:
    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 输出 'Vendor not found'

【问题讨论】:

  • 您使用的是哪个 dbms? (该代码是特定于产品的。)

标签: sql stored-procedures alter


【解决方案1】:

这可能会对你有所帮助....

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 变量返回结果是否找到了供应商?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多