Получение значения для возврата, когда найдена строка - PullRequest
0 голосов
/ 28 апреля 2019

Мне нужно, чтобы @r возвращало значение единицы, если в таблице найден ISBN.

домашнее задание: создайте процедуру под названием FindABookbyISBN.Он принимает один аргумент @value типа varchar (20), который является 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

1 Ответ

2 голосов
/ 28 апреля 2019

Гордон Линофф ответил на мой вопрос в разделе комментариев.

Мне просто нужно было добавить возвращаемое значение для него.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...