【发布时间】:2014-01-26 20:51:13
【问题描述】:
我正在尝试创建一个高效的 SQL 存储过程来从我的数据库中检索用户数据,但我遇到了一个我似乎无法弄清楚的语法问题。
基本上,我想在我的 SELECT 语句中分配我的输出变量。我还想通过 IF EXISTS 查看用户是否实际存在。不幸的是,我似乎不能两者兼得。
这是我的程序:
CREATE PROCEDURE [dbo].FindUser(@UserID binary(16), @UserExists bit OUTPUT, @Name
nvarchar(MAX) OUTPUT)
AS
SET NOCOUNT ON
IF EXISTS (SELECT @Name = Name FROM Users WHERE UserID = @UserID)
BEGIN
SET @UserExists = 1
END
RETURN
目前,它给了我一个“SQL46010 :: @Name 附近的语法不正确”。错误。 如果我删除 IF EXISTS,语句编译得很好!
为什么 IF EXISTS 检查会导致语法错误?
【问题讨论】:
标签: sql-server