exec ('select top '+cast(4*5 as varchar)+' from [table]')
你好像忘了写个* 不过不管我写成declare @i int set @i = 4*5 exec ('select top '+cast(@i as varchar)+' * from table1')或是exec ('select top '+cast(4*5 as varchar)+' * from table1')总是报告: 服务器: 消息 170,级别 15,状态 1,行 1 第 1 行: 'cast' 附近有语法错误。这是怎么回事?
declare @i int declare @sql varchar(300) set @i = 4*5 set @sql='select top '+cast(@i as varchar)+' * from aaa' exec (@sql)
这样也可declare @sql varchar(300) set @sql='select top '+cast(4*5 as varchar)+' * from aaa' exec (@sql)
不过不管我写成declare @i int
set @i = 4*5
exec ('select top '+cast(@i as varchar)+' * from table1')或是exec ('select top '+cast(4*5 as varchar)+' * from table1')总是报告:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'cast' 附近有语法错误。这是怎么回事?
declare @sql varchar(300)
set @i = 4*5
set @sql='select top '+cast(@i as varchar)+' * from aaa'
exec (@sql)
set @sql='select top '+cast(4*5 as varchar)+' * from aaa'
exec (@sql)
set @sql='select top '+cast(4*5 as varchar(10))+' * from aaa'
exec (@sql)