我有这段代码:
CREATE TABLE #CategoriesTable
(
CategoryId INT,
HasAssessment BIT,
IsScorm BIT,
IsExternal BIT,
ExternalLink varchar(256),
SingleArtifact BIT,
ScormModuleUrl varchar(256),
WindowHeight varchar(256),
WindowWidth varchar(256),
DateTimeCreated date,
HintText nvarchar(256),
UserId INT
)
select ct.HasAssessment from #CategoriesTable ct
where UserId = @UserId
IF (ct.HasAssessment = 1)
BEGIN
UPDATE #CategoriesTable SET HintText = 'With Assessment'
END
else
BEGIN
UPDATE #CategoriesTable SET HintText = 'With No Assessment'
END
SELECT *
FROM #CategoriesTable
我收到以下错误:无法绑定多部分标识符“ct.HasAssessment”。?
答案 0 :(得分:1)
您不需要IF声明。更新可以完全通过标准SQL完成。
UPDATE #CategoriesTable
SET HintText = CASE WHEN HasAssessment = 1
THEN 'With Assessment'
ELSE 'With No Assessment'
END
WHERE UserID = @UserID
如果您确实希望使用IF
语句(不建议),则需要声明一个变量来保存select语句的结果并在{{{{{ 1}}语句。
请注意,在这种情况下,select语句应该只返回一个结果,这是在SQL中完全执行更新的另一个原因。