作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试对我的代码创建一个 IF/ELSE
检查,以确保参数 @BookTitle
和 @GenreName
是尝试删除表 BookGenre
和 Genre 中的记录。我试图编写这行代码,但收到错误,
An expression of type non-Boolean type specified where condition is expected.
IF EXISTS (SELECT Id FROM Library.Book WHERE Title = @BookTitle AND
SELECT Id FROM Library.Genre WHERE Name = @GenreName)
ELSE
我需要一些关于如何创建 IF EXISTS
语句表达式的指导,该表达式包含两个单独的 select 语句作为 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
最佳答案
你的括号没了;你需要两个 EXISTS
条件:
IF EXISTS (SELECT Id FROM Library.Book WHERE Title = @BookTitle
) AND
EXISTS (SELECT Id FROM Library.Genre WHERE Name = @GenreName
)
BEGIN
. . .
END
关于SQL Server - 如何创建 IF EXISTS...SELECT AND SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53255078/
我是一名优秀的程序员,十分优秀!