【发布时间】:2016-03-07 17:13:50
【问题描述】:
我有一个名为“authenticate”的存储过程,如果提供了正确的用户名和密码,它会返回用户配置文件记录。现在,如果“身份验证”存储过程向我返回了一条记录,我正在尝试获取系统中的所有用户,否则什么也不返回。我正在尝试这样的事情:
IF EXISTS EXECUTE authenticate @UserName, @Password
BEGIN
SELECT * from Users;
END
我收到错误:关键字“EXECUTE”附近的语法不正确。 任何想法我做错了什么?
【问题讨论】:
-
您对设计有多少控制权?您可以将
Authenticate更改为表值函数,然后您可以使用IF EXISTS (SELECT 1 FROM Authenticate (@UserName, @Password)。如果您仍然需要其他领域的 SP,您可以将函数命名为其他名称,并让 SP 调用该函数以节省维护两个脚本。
标签: sql-server tsql stored-procedures