在MSSQL里,不能直接使用变量来执行TOP语句,如:
declare @i int
select @i=10
select top @i * from tab
go
但是可以通过EXEC语句实现:
---------------------------
在Sybase中由于没有TOP语句,而且不支持从数字到字符的隐式转换,所以比较麻烦 :
declare @i int
select @i=10
declare @s varchar(10)
select @s=convert(varchar,@i)
exec ('set rowcount '+@s+' select * from tab set rowcount 0')
select @i=10
declare @s varchar(10)
select @s=convert(varchar,@i)
exec ('set rowcount '+@s+' select * from tab set rowcount 0')