查询一个字段用select @a= 姓名 from Table where 学号 = 1
但我要将表名设为可变的,故我写成下面
set @SqlStr = 'select @a= 姓名 from ''' + @Class+''' where 学号 = '+convert(varchar,@StudentNo)
但没成功,我想可能是@a错了,请问应如何写
...全文
12413打赏收藏
关于select的问题
查询一个字段用select @a= 姓名 from Table where 学号 = 1 但我要将表名设为可变的,故我写成下面 set @SqlStr = 'select @a= 姓名 from ''' + @Class+''' where 学号 = '+convert(varchar,@StudentNo) 但没成功,我想可能是@a错了,请问应如何写
funsuzhou(羡米奇)(努力ing,成为专家中
我按你的写了函数,
CREATE function dbo.fun1(@tbname varchar(30),@studentNo int)
returns varchar(100)
as
begin
declare @re varchar(100)
declare @sql varchar(500)
set @sql='select @re=姓名 from '+@tbname+' where 学号='+convert(varchar,@StudentNo)
exec(@sql)
return (@re)
end
可进行语法检测出现了'错误443:在函数内不正确的使用了'EXECUTE'请问为什么?
--编一个自定义函数:
CREATE function dbo.fun1(@tbname varchar(30))
returns varchar(100)
as
begin
declare @re varchar(100)
declare @sql varchar(8000)
set @sql='select @re=姓名 from '+@tbname+' where 学号=convert(varchar,@StudentNo)'
exec(@sql)
return @re
end
declare @a varchar(10)
declare @sqlstr nvarchar(1000),@class varchar(50),@StudentNo varchar(20)
set @class='表名'
set @StudentNo='1'
set @a='字段名'
set @sqlstr = 'select '+ @a+'= 姓名 from ' + @Class+' where 学号 ='+ convert(varchar,@StudentNo)
exec(@sqlstr)