积极答复者
存储过程变量赋值的问题

问题
-
declare @tablename nvarchar(50)
declare @a varchar(20)
declare @sql nvarchar(1000)
set @tablename='day_碧云里'
set @a=''
set @sql= 'select '+@a+'=电量 from '+@tablename+''
exec(@sql)
因为表名是根据变量来确定的,所以我这么写了语句,但是我想把‘电量’这个值赋给@a,可是提示如下:
消息 102,级别 15,状态 1,第 15 行
'=' 附近有语法错误。
请问给为老师应该怎么改?
答案
-
declare @tablename nvarchar(50)
declare @a varchar(20)
declare @sql nvarchar(1000)
set @tablename='day_碧云里'
set @a=''
set @sql= 'select '+@a+'=电量 from '+@tablename+''
exec(@sql)
因为表名是根据变量来确定的,所以我这么写了语句,但是我想把‘电量’这个值赋给@a,可是提示如下:
消息 102,级别 15,状态 1,第 15 行
'=' 附近有语法错误。
请问给为老师应该怎么改?
declare @tablename nvarchar(50) declare @a varchar(20) declare @sql nvarchar(1000) set @tablename='day_碧云里' set @a='' set @sql= 'select @a =电量 from '+@tablename+'' --注意 exec sp_executesql @sql ,N'@a varchar(20) output ', @a out
More: blog.csdn.net/happyflystone- 已编辑 happyflystone 2009年11月16日 5:18
- 已建议为答案 Raymond Tang 2009年11月16日 5:23
- 已标记为答案 LiweiyinMicrosoft employee, Moderator 2009年11月19日 0:16
全部回复
-
declare @tablename nvarchar(50)
declare @a varchar(20)
declare @sql nvarchar(1000)
set @tablename='day_碧云里'
set @a=''
set @sql= 'select '+@a+'=电量 from '+@tablename+''
exec(@sql)
因为表名是根据变量来确定的,所以我这么写了语句,但是我想把‘电量’这个值赋给@a,可是提示如下:
消息 102,级别 15,状态 1,第 15 行
'=' 附近有语法错误。
请问给为老师应该怎么改?
declare @tablename nvarchar(50) declare @a varchar(20) declare @sql nvarchar(1000) set @tablename='day_碧云里' set @a='' set @sql= 'select @a =电量 from '+@tablename+'' --注意 exec sp_executesql @sql ,N'@a varchar(20) output ', @a out
More: blog.csdn.net/happyflystone- 已编辑 happyflystone 2009年11月16日 5:18
- 已建议为答案 Raymond Tang 2009年11月16日 5:23
- 已标记为答案 LiweiyinMicrosoft employee, Moderator 2009年11月19日 0:16
-
示例:
declare @tablename nvarchar(50) declare @a varchar(20) declare @sql nvarchar(1000) set @tablename='ta' set @a=''
set @sql= 'select @a =col1 from '+@tablename+' where col2 = ''''' exec sp_executesql @sql ,N'@a varchar(20) output ', @a out select @a /* -------------------- A1 (所影响的行数为 1 行) */ select * from ta /* col1 col2 ---- ---- A1 A2 A1 A3 A1 A4 A2 A5 A3 (所影响的行数为 5 行) */
More: blog.csdn.net/happyflystone