declare @tablename as varchar(20)
select @tablename = (select top 1 tablename from user_temp )
这样就给@tablename赋值了,
但是如果SQL语句里有变量的话,如何做能把返回值赋给变量呢,
如:select top 1 tablename from user_temp where type='条件'
select @tablename = (select top 1 tablename from user_temp )
这样就给@tablename赋值了,
但是如果SQL语句里有变量的话,如何做能把返回值赋给变量呢,
如:select top 1 tablename from user_temp where type='条件'
select top 1 @tablename =tablename from user_temp where type='条件'
select top 1 @tablename =tablename from user_temp where type='条件'
select @tablename = (select top 1 tablename from user_temp where type='条件')
不過這麼寫更好些
declare @tablename as varchar(20)
select top 1 @tablename = tablename from user_temp where type='条件'
declare @username as varchar(20)
declare @tablename as varchar(20)
set @username='bccu'
set @sql = 'select top 1 @tablename =tablename from userinfo where username='''+@username+''''
exec (@sql)
select @tablename
以上不知道是什么问题,提示必须声明变量 '@tablename'。
declare @tablename as varchar(20)
set @username='bccu'
select top 1 @tablename =tablename from userinfo where username=@username
select @tablename
declare @username as varchar(20)
declare @tablename as varchar(20)
set @username='bccu'
set @sql = 'select top 1 @tablename =tablename from userinfo where username='''+@username+''''
exec sp_executesql @sql,N'@tablename varchar(20) output',@tablename output
select @tablename
declare @username as varchar(20)
declare @tablename as varchar(20)
set @username='bccu'
set @sql = N'select top 1 @tablename =tablename from userinfo where username='''+@username+''''
exe sp_executesql @sql,N'@tablename varchar(20) output',@tablename output
select @tablename
declare @username as varchar(20)
declare @tablename as varchar(20)
set @username='bccu'
set @sql = N'select top 1 @tablename =tablename from userinfo where username='''+@username+''''
EXEC sp_executesql @sql, N'@tablename varchar(20) Output',@tablename Output --使用sp_executesql
select @tablename