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='条件'

解决方案 »

  1.   

    declare @tablename as varchar(20) 
    select top 1 @tablename =tablename from user_temp where type='条件'
      

  2.   

    declare @tablename as varchar(20) 
    select top 1 @tablename =tablename from user_temp where type='条件'
      

  3.   

    select @tablename = (select top 1 tablename from user_temp )---这句话直接写就可以了select top 1 @tablename = tablename from user_temp
      

  4.   

    這個應該也可以declare @tablename as varchar(20) 
    select @tablename = (select top 1 tablename from user_temp where type='条件')
      

  5.   


    不過這麼寫更好些
    declare @tablename as varchar(20) 
    select top 1 @tablename = tablename from user_temp where type='条件'
      

  6.   

    declare @sql as varchar(100)
    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'。
      

  7.   

    你這裡沒有必要使用動態SQL語句declare @username as varchar(20) 
    declare @tablename as varchar(20) 
    set @username='bccu'
    select top 1 @tablename =tablename from userinfo where username=@username
    select @tablename
      

  8.   

    declare @sql as varchar(100)
    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
      

  9.   

    declare @sql as Nvarchar(100)
    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
      

  10.   

    如果是必須是用動態SQL語句,使用sp_executesqldeclare @sql as Nvarchar(100) --改為Nvarchar
    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