declare @tablexx char(10)
set @tablexx = 'tp_rggj' /*表*/
update "+@tablexx+" set avg_jg=avg_jg.平均价 from avg_jg where "+@tablexx+".id = avg_jg.pid
按上面写总上报错:对象名 '+@tablexx+' 无效。求大虾帮忙了..
set @tablexx = 'tp_rggj' /*表*/
update "+@tablexx+" set avg_jg=avg_jg.平均价 from avg_jg where "+@tablexx+".id = avg_jg.pid
按上面写总上报错:对象名 '+@tablexx+' 无效。求大虾帮忙了..
解决方案 »
- (省份代码,城市代码,客户代码,销量,大类别,小类别) 想对客户进行小类别细分 想区分出每个城市每种大类别下销量排名前20%后20%中间60%客户 内有测试数据
- 问个sql查询的问题
- 请教触发器问题
- 请问各位高手:这个sql语句该怎么写????
- 大家看看我的这段存储过程代码返回值为什么始终是0?给分!
- 这是一条MySql语句,我想把他改成SqlServer语句。
- 高分求教:一个关于SqlServer的数据库的问题!急
- 存储过程、SQL语句、有何问题update t1 set c1=@c1 where t1id in (select top 1 t1id from t1 where c1 is null )
- 如何得到这样的结果:
- 统计一天访问数据库的IP地址
- 如何实现该查询?
- ??在asp.net里 如何获取 ”select @num=count(ID) from OriginalData “中@num的数据????
1 :普通SQL语句可以用Exec执行 eg: Select * from tableName
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL eg:
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 @tablexx = 'tp_rggj' /*表*/
EXEC('update ['+@tablexx+'] set
avg_jg=avg_jg.平均价
from avg_jg
where ['+@tablexx+'].id = avg_jg.pid')