各位好:我们用 exec(@sqltext1) 的方式,可以灵活的将各种查询条件放入查询中但如果查询结果需要被调用,则我们只能在@sqltext1 中用 insert #temp ..... 的方式但这样生成的表不能被调用,我们只能 insert ##temp  这样的全局表才可以但如果大家都在使用这个程序,##temp 就会被多人使用而可能造成冲突!怎么解决呢?谢谢高手解答!
动态sql  全局表  冲突

解决方案 »

  1.   

    如果知道表结构且结构是固定的,可以先创建临时表,局部临时表即可。然后:
    insert into #tb(xxxxx)
    exec (@sql)即可。
      

  2.   

    如果事先知道表结构的话可以先创建临时表或表变量来做处理
    但是如果不知道,我想到的是用随机数生成一个##t_xxx
    然后一直用exec()来执行其余的操作,
    之前有人提用openrowset执行存储过程,然后select into到临时表
    但是那种方法不安全