
上面是我写的存储过程 里面使用 if 条件语句
下面图片是运行时报的错误。。。

该怎么修改语句呢。。。
------解决方案--------------------
可以用case...when...then语法来实现你要求的功能,你这种写法没用过!
------解决方案--------------------
+1
update Man
set TaskID=case when TaskIdd is null then @manID else TaskID end,
TaskIdd=case when (TaskID is null and TaskIdd is null) then TaskIdd else @manID end
------解决方案--------------------

------解决方案--------------------
要用case才行
------解决方案--------------------
程序块中只能使用CASE WHEN THEN,IF ELSE是包裹程序块的
CASE WHEN
UPDATE Man SET TaskId = CASE WHEN TaskId IS NULL THEN @TaskId
ELSE TaskId END,
TaskIdd = CASE WHEN TaskId IS NULL THEN TaskIdd
ELSE CASE WHEN TaskIdd IS NULL THEN @TaskId
ELSE TaskIdd END END
WHERE ID = @ManId
IF ELSE
IF EXISTS (SELECT 1 FROM Man WHERE ID = @ManId AND TaskId IS NULL)
BEGIN
UPDATE MAN SET TaskId = @TaskId WHERE ID = @ManId AND TaskId IS NULL
END
IF EXISTS (SELECT 1 FROM Man WHERE ID = @ManId AND TaskId IS NOT NULL AND TaskIdd IS NULL)
BEGIN
UPDATE Man SET TaskIdd = @TaskId WHERE ID = @ManId AND TaskId IS NOT NULL AND TaskIdd IS NULL
END