2009-12-30 114 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