У меня проблема, которую я никогда раньше не видел. Для этого требуется создать процедуру, которая вставляет новую книгу в таблицу «Книги». Эта процедура должна использовать условие If / Else, когда IF будет обрабатывать вставку, а ELSE вызовет ошибку.
У меня возникли проблемы с If / Else, потому что в прошлом я всегда делал это, используя If, чтобы выдать ошибку, в то время как else делает вставку. Это незакончено, но это насколько я получил.
CREATE PROC spInsertBook
@BookID INT = NULL,
@BookISBN VARCHAR(50) = NULL,
@BookTitle VARCHAR(50) = NULL,
@BookAuthor VARCHAR(50) = NULL,
@BookPublisher VARCHAR(50) = NULL,
@BookGenre VARCHAR(50) = NULL
AS
IF NOT EXISTS (SELECT * FROM Books WHERE BookID = @BookID)
THROW 50001, 'BookID already exists!', 1;
ELSE
SET BookID = @BookID
IF EXISTS (SELECT * FROM Books WHERE BookISBN = @BookISBN)
THROW 50001, 'BookISBN already exists!', 1;
IF @BookTitle IS NULL
THROW 50001, 'Enter a book title!', 1;
IF @BookAuthor IS NULL
THROW 50001, 'Enter a book author!', 1;
IF @BookPublisher IS NULL
THROW 50001, 'Enter a book publisher!', 1;
IF @BookGenre IS NULL
THROW 50001, 'Enter a book genre!', 1;
ELSE
INSERT Books
VALUES(@BookID, @BookISBN, @BookTitle, @BookAuthor, @BookPublisher, @BookGenre)
Вы можете видеть, что я использую операторы If, чтобы выдавать ошибки, а остальное, чтобы вставить входные параметры, но это нужно изменить, есть идеи?