问题描述
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'
解决方法
这可能对你有帮助......
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 变量返回结果?