我正在使用SQL Express 2010查询构建器。我需要能够增加一个字段。
在我的后面代码中,我打了一个电话,比如
tableAdapter.IncrementLikeCount(id);
如果我只使用一个增量,那么like字段可以为null,所以我想要 一个。在该字段OR中将null视为零 湾设置为1,如果为null,则以其他方式递增。
我尝试的最新内容是选项b,在查询构建器中包含以下代码:
UPDATE [dbo].[myTable]
SET [LikeCount] = IIF(ISNULL([LikeCount]), 1, LikeCount + 1)
WHERE ([ID] = @Original_ID)
然而,这不起作用。查询构建器继续在ISNULL中重写表达式而不使用方括号和逗号,如下所示:
UPDATE [dbo].[myTable]
SET [LikeCount] = IIF(ISNULL(LikeCount,), 1, LikeCount + 1)
WHERE ([ID] = @Original_ID)
这样做有干净,简单的方法吗?
答案 0 :(得分:6)
ISNULL语句需要一个默认值来回退,比如
ISNULL(LikeCount, 0)
其中0是LikeCount变为IF的值,实际上它是null。
所以,试试
UPDATE [dbo].[myTable]
SET [LikeCount] = (ISNULL(LikeCount, 0) + 1)
WHERE ([ID] = @Original_ID)
<强>更新强>
关于您在评论中发布的查询:
UPDATE Documents
SET docLikeCount = ISNULL(docLikeCount, 0) + 1
WHERE docID = @Original_docID