这是引用pubs数据库的简单代码。 SELECT语句返回10条记录,因此@@ ROWCOUNT变量应设置为10。但是在消息窗口中,它说“找到0条记录”。在IF语句@@ ROWCOUNT设置为0之后,为什么有原因吗?
如果我将SELECT @@ ROWCOUNT放在WHERE语句之后,则@@ ROWCOUNT变量位于10。但是在执行IF STATEMENT后它会更改。
SELECT *
FROM pubs.dbo.employee
WHERE pub_id ='0877'
IF @@ROWCOUNT > 0
PRINT CONVERT(CHAR(2), @@ROWCOUNT) + ' records found'
ELSE
PRINT 'No records found'
答案 0 :(得分:3)
@@ROWCOUNT
返回最后一条语句的行数。它是高度易挥发的。因此,基本上任何东西都可以重置它。
如果您关心它,请立即将其分配给参数!
DECLARE @ROWCNT INT;
SELECT * FROM pubs.dbo.employee WHERE pub_id = '0877';
SET @ROWCNT = @@ROWCOUNT;
然后使用参数值。