Interesting/worrying! We have lots of code that does something like
declare @i int
set @i = 10
set rowcount @i
insert into tab1
select * from tab2
in order to insert the top n rows from one table into another.
We can't easily use 'top' because it won't accept a variable, ie
select top @i...
won't work, so we'd need to use dynamic sql everywhere.
I've verified that this use of rowcount still works in 2008, and for interest it works with delete as well, ie
set rowcount 1
delete from table1
will only delete 1 row.