2016-12-05 70 views
-5

我在下面的查詢中收到錯誤。有人可以幫助確定錯誤嗎?此UPDATE語句是否有效?它給我SQL中的錯誤

UPDATE TOP(1) Customers SET FirstName = 'ted' where LastName = 'Miller' 
+0

請發佈錯誤。如果您有錯誤,您的聲明肯定無效。 – Peter

+2

「有人可以幫助識別錯誤」 - 錯誤幾乎肯定會幫助您識別它/幫助 - 例如錯誤*數字*或錯誤*消息*。這些都明顯缺席你的問題。你不只是收到一條消息,說'錯誤',沒有別的。 –

+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聲明中),所以哪一行是「最高的」是完全任意的。你會得到更可靠的結果如果你包括一個ORDER BY告訴它如何確定哪一行是「頂部」。