如果在表中找到ISBN,我需要让@r返回1的值。
作业问题:创建一个名为FindABookbyISBN的过程。它接受一个类型为varchar(20)的参数@value,它是某人正在寻找的ISBN。如果该过程找到该书,则显示该书的信息并返回1。如果未找到该书,则该过程将打印类似“找不到书”的内容,并返回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
答案 0 :(得分:2)
Gordon Linoff在评论部分回答了我的问题。
我只需要为其添加一个Return值。
IF EXISTS (SELECT * FROM BookInfo WHERE ISBN = @ISBN)
BEGIN
PRINT 'Found book with ISBN ' + @ISBN
Return 1
END
ELSE
BEGIN
PRINT 'Book was not found with ISBN ' + @ISBN
END
GO