top 关键字问题 定义了一个变量:declare @p intset @p='10'select top @p * from atable说@p附近有语法错误,不知什么错 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 declare @p int set @p='10' exec('select top '+@p+' * from atable ') 动态sql语句基本语法1 :普通SQL语句可以用Exec执行 Select * from tableName Exec('select * from tableName') Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL declare @fname varchar(20) set @fname = 'FiledName' Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。 Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格 当然将字符串改成变量的形式也可 declare @fname varchar(20) set @fname = 'FiledName' --设置字段名 declare @s varchar(1000) set @s = 'select ' + @fname + ' from tableName' Exec(@s) -- 成功 exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000) set @s = 'select ' + @fname + ' from tableName' Exec(@s) -- 成功 exec sp_executesql @s -- 此句正确 3. 输出参数 declare @num int, @sqls nvarchar(4000) set @sqls='select count(*) from tableName' exec(@sqls) --如何将exec执行结果放入变量中? declare @num int, @sqls nvarchar(4000) set @sqls='select @a=count(*) from tableName ' exec sp_executesql @sqls,N'@a int output',@num output select @num declare @p int set @p='10' exec('select top '+ltrim(@p)+' * from atable')2005就可以 select top @p * from atable 另外,问一下,装了2005 怎么没有 manneger studio呢 我装的是开发版现在删也删不干净 说IIS 没安装 现在是IIS 也不能安装 光驱坏了。 汗。2000中select top 后面不能跟变量 关于update的问题 一条SQL语句 局部临时表和存储过程的问题 仅查有没有,不求多少条,效率高SQL 随机N个数 时间转换???——在线等!!!!!!!!! sql 查询表中评论的条数,没有评论的则计为0 怎么还原一个备份? SQL语句在vc中怎么嵌入使用? 我用SELECT TOP 5 * FROM TABLE ORDER BY USERNAME 语句时,他返回了全部记录,这里的USERNAME只是一般索引,请问如何能在USERNAME是一般索引时限制返回前5条记录? 听说临时表 SQL 触发器
set @p='10'
exec('select top '+@p+' * from atable ')
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格 当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名 declare @s varchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正确 3. 输出参数
declare @num int,
@sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls) --如何将exec执行结果放入变量中? declare @num int, @sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
set @p='10'
exec('select top '+ltrim(@p)+' * from atable')2005就可以 select top @p * from atable
现在删也删不干净