为什么还是不出结果?

gxbhhp 2003-06-20 05:24:16
那中间有变量时呢?为什么又不行了?

declare @str varchar(100),@Q varchar(100)
exec('select '+@Q+'=empco from Employees' )
print @Q

报错:

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

司马尚龙补充声明:

declare @str varchar(100),@Q varchar(100)
select @Q=empco from Employees

print @Q

这样是可以出结果的。
...全文
125 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2003-06-20
  • 打赏
  • 举报
回复
declare @sql nvarchar(1000),@para nvarchar(100)
declare @re varchar(100)

select @sql='select @q=empco from employess'
select @para='@q varchar(100) output'
exec sp_executesql @sql,@para,@re output
print @re
j9988 2003-06-20
  • 打赏
  • 举报
回复
噢,刚才没认真了!这样:
declare @str Nvarchar(100),@Q varchar(100)
set @str='select @Q=empco from Employees'
exec sp_executesql @str,N'@Q varchar(100) output',@Q output
print @Q
gxbhhp 2003-06-20
  • 打赏
  • 举报
回复
不行啊。把你COPY过去:

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


请问一下,这个东东是做什么的?sp_executesql
j9988 2003-06-20
  • 打赏
  • 举报
回复
上面错了
declare @str Nvarchar(100),@Q varchar(100)
set @str='select @Q=empco from Employees'
exec sp_executesql @str,N'@Q varchar(100) output',@Q varchar(100) output
print @Q

j9988 2003-06-20
  • 打赏
  • 举报
回复
declare @str Nvarchar(100),@Q varchar(100)
set @str='select '+@Q+'=empco from Employees'
exec sp_executesql @str,N'@Q varchar(100) output',@Q varchar(100) output
print @Q

22,209

社区成员

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

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