动态传字段参数给select语句一问

辅导费卡了 2003-10-15 05:08:22
我是想实现
select top 2 fname from pubs.dbo.employee
这个功能,但是'fname'这个表的字段我要随时更换,因此写下如下语句

DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
declare @temp varchar(200),@tempword varchar(200)
SET @SQLString =N'SELECT top 2 @temp FROM pubs.dbo.employee'
SET @ParmDefinition = N'@temp varchar(200)'
set @tempword='fname'
EXECUTE sp_executesql @SQLString, @ParmDefinition,@temp=@tempword

但是给我返回两行'fname',而不是数据库里面的内容。请教大侠!
...全文
64 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
辅导费卡了 2003-10-15
  • 打赏
  • 举报
回复
那我要实现下面这个呢???
declare @aa varchar(200)
select top 1 @aa=fname from pubs.dbo.employee
select @aa
辅导费卡了 2003-10-15
  • 打赏
  • 举报
回复
sigh,这块到底高人多啊。。。pfpf
txlicenhe 2003-10-15
  • 打赏
  • 举报
回复
Exec('select top ' + cast(@n as varchar(3)) + ' ' + @fname + ' from ' + @tablename )
yujohny 2003-10-15
  • 打赏
  • 举报
回复
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
declare @temp varchar(200),@tempword varchar(200)
SET @SQLString =N'SELECT top 2 '+@temp+' FROM pubs.dbo.employee'
SET @ParmDefinition = N' @temp varchar(200)'
set @tempword='fname'
EXECUTE sp_executesql @SQLString, @ParmDefinition,@temp=@tempword
pengdali 2003-10-15
  • 打赏
  • 举报
回复
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
declare @temp varchar(200)
set @temp='fname'
SET @SQLString =N'SELECT top 2 '+@temp+' FROM pubs.dbo.employee'

exec (@SQLString)

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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