关于动态组织SQL语句的问题

chmj718 2003-10-17 01:07:21
我在存储过程中 需要实现以参数指定表名、字段名的SQL查询语句,并且需要将其返回值付给一临时变量,不知道怎么实现,请各位大峡 帮忙!
小弟试着用 系统存储过程sp_executesql,好象还不能实现
...全文
34 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chmj718 2003-10-18
  • 打赏
  • 举报
回复
问题已经解决,方法跟是yujohny(踏网无痕) 说的一样!谢谢大家关注
yujohny 2003-10-17
  • 打赏
  • 举报
回复
declare @bb int,
@sqls nvarchar(4000)
set @sqls='select @a=id from city where name = ''as'''
exec sp_executesql @sqls,N'@a int output',@bb output
select @bb
chmj718 2003-10-17
  • 打赏
  • 举报
回复
小马哥 上面的 方法不能付值给变量,而下面的方法我试了不行,
我是这样的:

declare @bb int
exec('select '+ @bb + '= id from city where name = ''as''')
select @bb

错误提示:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '=' 附近有语法错误。

(所影响的行数为 1 行)

yoki 2003-10-17
  • 打赏
  • 举报
回复
declare @bb decimal(8,0)
exec('select '+ @bb + '= d_fare1 from fare')
select @bb
yoki 2003-10-17
  • 打赏
  • 举报
回复
declare @tablename varchar(100)
declare @field varchar(20)
declare @sql varchar(8000)

select @tablename='table1'
select @sql='select ' + @field
select @sql=@sql+' from ' +@tablename

exec(@sql)
txlicenhe 2003-10-17
  • 打赏
  • 举报
回复
参考
http://expert.csdn.net/Expert/topic/2364/2364046.xml?temp=.829693
yoki 2003-10-17
  • 打赏
  • 举报
回复
declare @tablename varchar(100)
declare @field varchar(20)
declare @sql varchar(8000)

select @tablename='table1'
select @sql='select ' + @field
select @sql=@sql+' from ' +@tablename

exec(@sql)

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧