同题

解决方案 »

  1.   

    如SET @sqlstring = N'set @a = GZSW_SK.dbo.datetimetostr((SELECT  ' +LTRIM(RTRIM( @字段名)) + N' from '+ LTRIM(RTRIM(@TableName)) + N'  WHERE ' + LTRIM(RTRIM(@KEYNAME))+ N'='''+LTRIM(RTRIM(@KEYVALUE))+N'''  ))'EXECUTE sp_executesql @sqlstring
      

  2.   

    如SET @sqlstring = 'select * from table1'EXECUTE sp_executesql @sqlstring
      

  3.   

    //仅供参考
    CREATE PROCEDURE sp_load_modules
    (
      @id int = 0,
      @p_id int = 0,
      @need_child_count bit = 0,
      @need_memo bit = 0
    )
    ASdeclare @sql varchar(8000)set @sql = 'select t1.id, t1.name, t1.project_id, t1.table_prefix '  --for list, no memo
    if (@need_memo <> 0)
      set @sql = @sql + ', memo'if (@need_child_count <> 0)
      set @sql = @sql + ', 
      (select count([id]) 
        from t_object 
        where module_id = t1.[id]) as child_count 'set @sql = @sql + '
      from t_module t1 
      where 'if (@id <> 0) 
      set @sql = @sql + ' id = ' + convert(varchar(20), @id)
    else
      set @sql = @sql + ' project_id = ' + convert(varchar(20), @p_id)set @sql = @sql + '
        order by id 'exec (@sql)
    GO
      

  4.   

    SET @sqlstring = 'select * from table1'
    Exec(@SqlString)也行