我想要利用某一带参数的存储过程的结果,与现有表进行连接,请问这个语句要怎么写呢?
数据量有点大,几十万吧,求一个高效的语句,感激不尽!

解决方案 »

  1.   

    谢谢指导,但能否写一下存储过程插入临时表的代码呢?
    小弟是初学sql所以不太理解表值函数,能给一些详细的介绍吗?
    这两种方式相比哪种效率更高一些?
      

  2.   

    利用存储过程返回的结果和现有的表关联?假如存储过程中的业务不复杂的话,那你直接用存储过程中的sql和现有的表关联假如存储过程复杂的话,将存储过程执行的结果插入到临时表,用这个临时表和现有的表关联
      

  3.   

    存储过程插入临时表,一般要知道表结构,先要创建一个临时表
    create table #t(id int....)
    然后用insert into #t exec 存储过程
    来插入数据,不过你有10几万啊,如果列少的话还好说,多的话应该也很慢
    效率你可以自己尝试一下,可以给#t表再建几个索引用来提高与其他表关联的效率表值函数的例子,你可以从联机丛书上看一下,表值函数可以像表一样直接使用