这个语句
declare @a int
select @a=7
select *
from (select top '+rtrim(@a)+' * from gm_result order by kill_cnt desc) a
---------------------------------------------
出现
服务器: 消息 170,级别 15,状态 1,行 4
第 4 行: '+rtrim(@a)+' 附近有语法错误。
---------------------
怎么回事啊
declare @a int
select @a=7
select *
from (select top '+rtrim(@a)+' * from gm_result order by kill_cnt desc) a
---------------------------------------------
出现
服务器: 消息 170,级别 15,状态 1,行 4
第 4 行: '+rtrim(@a)+' 附近有语法错误。
---------------------
怎么回事啊
select @a=7
exec ('
select *
from (select top '+rtrim(@a)+' * from gm_result order by kill_cnt desc) a
')
select @a=7declare @SQL varchar(8000)
select @SQL='select * from (select top '+ rtrim(@a) + ' * from gm_result order by kill_cnt desc) a'
exec (@SQL)
只能用动态SQL 解决
盖子看大家都有这个需求
于是呼
SQL SERVER 2005 支持这个功能了
--------------------------------
服务器: 消息 170,级别 15,状态 1,行 5
第 5 行: 'rtrim' 附近有语法错误。
EXEC(‘select *
from (select select top '+@a+@FdOutPut+' from gm_result order by kill_cnt desc) a’)
declare @a int
select @a=7declare @SQL varchar(8000)
select @SQL='select * from (select top '+ rtrim(cast(@a as char(2)) + ' * from gm_result order by kill_cnt desc) a'
exec (@SQL)
to:
lalakid(梦想总是那么美好……) ( ) 信誉:100 2006-08-02 17:13:00 得分: 0
SQL SERVER 2000不支持 TOP + 变量
只能用动态SQL 解决
盖子看大家都有这个需求
于是呼
SQL SERVER 2005 支持这个功能了
haha懶惰 :)
select @a=7
Declare @s varchar(8000)
Set @s = ''
Set @s = 'select * ' +
' from (select top '+ rtrim(@a) +' * from t order by articleId desc) a'Exec(@s)
这样是可以的执行的
我刚刚测试了一下
select @a=7
Declare @s varchar(8000)
Set @s = rtrim(@a)
exec( 'select * ' +
' from (select top '+ @S +' * from t order by articleId desc) a')