Я пытаюсь создать проверку IF/ELSE
в своем коде, чтобы убедиться, что параметры @BookTitle
и @GenreName
являются записями в таблицах BookGenre
и Genre, прежде чем пытаться их удалить. Я попытался написать эту строку кода, но получил ошибку,
Выражение типа не-булева типа, указанное там, где ожидается условие.
IF EXISTS (SELECT Id FROM Library.Book WHERE Title = @BookTitle AND
SELECT Id FROM Library.Genre WHERE Name = @GenreName)
ELSE
Мне нужно несколько указаний о том, как создать выражение оператора IF EXISTS
, которое включает в себя два отдельных оператора выбора как часть проверки IF.
Ниже приведена вся процедура хранения (без оператора IF):
PROCEDURE [Library].[DeleteDateFromBookGenre]
-- Parameters to select which record delete
@BookTitle nvarchar(200),
@GenreName nvarchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF EXISTS (SELECT Id FROM Library.Book WHERE Title = @BookTitle)
IF EXISTS (SELECT Id FROM Library.Book WHERE Title = @BookTitle)
-- Deletes the specified and selected data from the Genre and Book table.
DELETE FROM Library.BookGenre
WHERE BookId IN (
SELECT Id
FROM Library.Book
WHERE Title = @BookTitle
) AND
GenreId IN (
SELECT Id
FROM Library.Genre
WHERE Name = @GenreName
)
END