【发布时间】:2019-04-28 18:43:07
【问题描述】:
如果在表中找到 ISBN,我需要让 @r 返回值 1。
作业问题:创建一个名为 FindABookbyISBN 的过程。它接受一个类型为 varchar(20) 的参数 @value,即某人正在寻找的 ISBN。如果程序找到该书,则显示该书信息并返回 1。如果未找到该书,该程序将打印类似“Cannot find book”之类的内容并返回 0。
消息应如下所示:
用 isbn 9780393248968 找到书
1
找不到带有 isbn 9780393248968 的书
0
IF OBJECT_ID ('FindABookbyISBN') IS NOT NULL
DROP PROCEDURE FindABookbyISBN
GO
CREATE PROCEDURE FindABookbyISBN @ISBN varchar(20) AS
IF EXISTS (SELECT * FROM BookInfo WHERE ISBN = @ISBN)
BEGIN
PRINT 'Found book with ISBN ' + @ISBN
END
ELSE
BEGIN
PRINT 'Cannot find book with ISBN ' + @ISBN
END
GO
--testing procedure
--success
Declare @r int
EXEC @r = FindABookByISBN '9780393248968'
Print @r
--failure
Declare @t int
EXEC @t = FindABookByISBN '1234'
Print @t
【问题讨论】:
-
您的存储过程没有返回状态值。
-
哦!非常感谢。我知道这很简单。感谢您的意见!
标签: sql sql-server stored-procedures printing