2009-12-30 108 views
0

如果我更新表中的一條記錄......更新後我如何確保表只有一個受影響的記錄。即時通訊使用SQL Server 2005SQL服務器(更新)

回答

3

使用@@ ROWCOUNT

USE AdventureWorks; 
GO 
UPDATE HumanResources.Employee 
SET Title = N'Executive' 
WHERE NationalIDNumber = 123456789 
IF @@ROWCOUNT = 0 
PRINT 'Warning: No rows were updated'; 
GO 
+0

精雅被,,,,但是,如果任何一個更新該表(同一服務器)記錄我怎麼能知道這 – Domnic 2009-12-30 04:36:23

+0

@@ ROWCOUNT會只告訴你上一條語句發生了什麼,而不是來自其他用戶。那是你要的嗎?你究竟想要做什麼?也許用更多的細節發佈另一個問題。 – 2009-12-30 04:56:21

+1

這會更好,因爲「IF @@ ROWCOUNT <> 1」可以滿足「只有一個受影響的記錄」的要求 – gbn 2009-12-30 08:57:12