首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

使用 TOP 子句限制 UPDATE 語句更新的資料筆數

     編輯:關於SqlServer

在 SQL Server 中,我們可以透過 TOP 子句來限制 UPDATE 語句所修改的資料列數。當 TOP (n) 與 UPDATE 搭配使用時,資料庫引擎會隨機選取 n 筆符合條件的資料列進行更新。這在需要批次處理或隨機抽樣更新時非常實用。

基本用法:隨機更新指定筆數

假設我們要將部分資深業務員的客戶轉交給新進業務員,以下範例會隨機抽取 10 位客戶,將其負責業務員從 ID 275 變更為 276:

USE AdventureWorks2008R2;
UPDATE TOP (10) Sales.Store
SET SalesPersonID = 276
WHERE SalesPersonID = 275;
GO

進階用法:依照有意義的順序更新

若需依據特定順序(如入職日期)來更新前 N 筆資料,必須搭配子查詢與 ORDER BY 子句。下列範例更新入職最早的 10 名員工,增加其特休時數 8 小時:

UPDATE HumanResources.Employee
SET VacationHours = VacationHours + 8
FROM (
    SELECT TOP 10 BusinessEntityID
    FROM HumanResources.Employee
    ORDER BY HireDate ASC
) AS th
WHERE HumanResources.Employee.BusinessEntityID = th.BusinessEntityID;
GO

這樣就能確保更新的是「入職最早」的 10 位員工,而非隨機選取。

參考資料:Microsoft TechNet - TOP (Transact-SQL)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved