各位 大侠,打扰一下: 问个简单的sql 问题吗?
sqlserver 中 ,如何能让一个符合sql语句的 字符串 当做sql 语句 执行? 
例如:SELECT COUNT(*)
         FROM (SELECT view_grid_source
                 FROM platform..st_view pf
                 WHERE pf.view_name = 'someview ') 上面的 查询出来的结果是1  ! 而实际上 SELECT view_grid_source
                 FROM platform..st_view pf
                 WHERE pf.view_name = 'someview '
是查询出来的一个 view-grid-source 是个一个字符串 类似:“select * from XX 。。”的  我想要它查出来的字符串也能再执行下?如何 改? 
如果下面的可以 为什么有问题? 高手们指点下啊 小弟不胜感激
DECLARE @sql varchar(1000);
set @sql = 'SELECT view_grid_source
                 FROM platform..st_view pf
                 WHERE pf.view_name = 'someview ' ';
@sql = 'SELECT COUNT(*)
         FROM (@sql ) ';
exec(@sql); 也就是 实现 把一个查询出来的标准sql字符串 送回到另一个sql 中 再次执行 !!!

解决方案 »

  1.   

    分开写,先把view-grid-source查询出来的结果传入一个String 变量,再在第二次的sql语句里面传入这个变量
      

  2.   

    oracle用EXECUTE IMMEDIATE动态执行sql字符串
    sqlserver不晓得啊
      

  3.   

    解决了啊。 其实为什么是1 原因就是sql 执行时把它当成了字符串。
    将sql执行的结果 再次执行,似乎 没什么道理。
    oracle 中有plsql 可以实现。 sqlserver 中 tdsql也可以。
    还需要以后实践的过程中探索啊。