T-SQL存储过程NULL输入值导致select语句失败
发布时间:2020-05-24 00:21:42 所属栏目:MsSql 来源:互联网
导读:下面是一个存储过程,用于根据单独检查所有字段来检查数据库中是否存在重复条目(不要问为什么我应该这样做,它只需要这样). 听起来非常简单,但SP失败了. 问题是传递给SP的一些参数可能具有空值,因此sql应该读为“is null”而不是“= null”. 我已尝试使用exec()
|
下面是一个存储过程,用于根据单独检查所有字段来检查数据库中是否存在重复条目(不要问为什么我应该这样做,它只需要这样). 听起来非常简单,但SP失败了. CREATE PROCEDURE sp_myDuplicateCheck
@userId int,@noteType char(1),@aCode char(3),@bCode char(3),@cCode char(3),@outDuplicateFound int OUT
AS
BEGIN
SET @outDuplicateFound = (SELECT Top 1 id FROM codeTable
WHERE userId = @userId
AND noteType = @noteType
AND aCode = @aCode
AND bCode = @bCode
AND cCode = @cCode
)
-- Now set the duplicate output flag to a 1 or a 0
IF (@outDuplicateFound IS NULL) OR (@outDuplicateFound = '') OR (@outDuplicateFound = 0)
SET @outDuplicateFound = 0
ELSE
SET @outDuplicateFound = 1
END
解决方法对于每个可能为null的参数,我认为你需要这样的东西:AND (aCode = @aCode OR (aCode IS NULL AND @aCode IS NULL)) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – SQL Server哈希索引
- 利用脚本自动安装SQLServer的实现步骤分析
- sql-server – 我们可以将CASE与EXEC一起使用
- SQL Server保证可空字段中非空值唯一
- 将列从Date转换为Datetime Sql Server
- scheduled-tasks – Sitecore清理代理和数据库清理
- sql-server – 在sql server 2012中设置trustworthy =的安全
- sql-server – 从Excel导入到SQL Server的数据导入未能导入
- SQL Server 一个SQL语句获得某人参与的帖子及在该帖得分总和
- sql-server – SQL Server中的复合索引与INCLUDE覆盖索引
