sql-server - 返回 bool 的存储过程

标签 sql-server t-sql stored-procedures

我正在创建一个存储过程,用于检查用户是否正在保存的电子邮件(编辑个人资料电子邮件),以检查数据库中是否已存在其他用户的新电子邮件。如果数据库中不存在输入的电子邮件,则可以安全使用和保存,但如果数据库中存在该电子邮件,并且用户 ID 和名称与保存者的用户 ID 和名称不匹配,则意味着新电子邮件属于其他用户返回 false,我将用它来抛出错误消息

这是我所拥有的:

create procedure CheckDuplicate
@email nvarchar(256),
@Id int
As
Begin
set nocount on;
select usr.Id, usr.UserName, usr.Email
from Users usr
where usr.Email = @email and usr.Id = @Id
end

问题:如何添加 bool 来检查数据库中是否存在?

最佳答案

试试这个:

create procedure CheckDuplicate
@email nvarchar(256),
@Id int
As
Begin

set nocount on;

   Select Case When Exists (
      select usr.Id, usr.UserName, usr.Email
      from Users usr
      where usr.Email = @email and usr.Id = @Id
   )
   Then Cast(1 as bit)
   Else Cast(0 as bit) 
   End


End

关于sql-server - 返回 bool 的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18747381/

相关文章:

sql-server - SQL 服务器 2008 R2 : how to disable the remote access only for the user "sa"?

c# - codefirst 数据库未创建

SQL "transform"查询

sql-server - Crystal Reports 使用 SQL Server 创建临时表

mysql - 为MySQL存储过程添加默认值为NULL的参数

sql-server - 如何临时将系统管理员权限授予用户?

sql - 根据别名列名进行过滤

sql - 如何在 OUTER APPLY 查询中将 varchar 转换为 XML

c# - 如何将存储过程的多个结果存储到数据集中?

javascript - 如何在ASP MVC中使用sweet Alert确认用户数据的编辑