我在以下查询中收到错误。有人可以帮助识别错误吗?
UPDATE TOP(1) Customers SET FirstName = 'ted' where LastName = 'Miller'
答案 0 :(得分:0)
您无法在更新声明中说UPDATE TOP(1)
。
如果您有多行LastName = 'Miller'
,但只想更新前一行,则需要在where
子句中指定其他条件,直到只返回一行为止。
话虽如此,这可能是您正在寻找的:
UPDATE Customers
SET FirstName = 'ted'
WHERE Id IN (
SELECT TOP 1 Id
FROM Customers
WHERE LastName = 'Miller'
)
我推断您的行有一个Id
字段或其他字段来唯一标识Customer
行。如果它没有,那么你遇到的问题不仅仅是这一个UPDATE语句。
另外,因为我没有在子查询中指定ORDER BY
(在您尝试的UPDATE
语句中也没有指定),那么最后一行是" top一个"是完全随意的。如果您将ORDER BY
添加到告诉它如何确定哪一行是" top"那么您将获得更可靠的结果