sql - 使用 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 输出“未找到供应商”
解决方案
这可能会帮助你......
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 变量来返回结果,无论是否找到了供应商?
推荐阅读
- python - IndexError:索引 2 在文件绘图期间超出轴 1 的范围,大小为 2
- karate - JSONPath 在空手道中使用时不返回值,但使用在线评估器时不返回值
- reactjs - 您是否需要 Web 服务器来在 VPS 上运行 React 应用程序的生产版本?
- laravel - 如何在我的模板 PhpWord 中设置 Yes 或 No 值而不是 1 或 0?
- python - 在 Python 中链接数组匹配
- eclipse-rcp - 如何在 Eclipse RCP 应用程序中调用 Rest API?
- php - Laravel View 分享打破 PHPunit 测试
- numpy - 平均直到一个索引值与 Numpy 中另一个数组的值相对应
- c++ - 来自字符串 (__DATE__) 的 QDateTime 无效
- python - 如何将参数作为 JSON 传递给 python 脚本