多个存储过程有相同的语句,可以定义后共用吗?
用存储过程调用存储过程吗?

解决方案 »

  1.   

    是,是需要吧通用部分分离出来的。
    有可能嵌入的那个存储过程并不是完整的一个sql语句。
    能不能有一个简单的例子?
      

  2.   

    存储过程可以这样declare @query varchar(max)
    set @query = .......执行的时候用exec (@query)如果不是太多太多存储过程需要用到同一段话的话,你还是分开写吧,又不是很费事如果超过20个存储过程的话,你可以把这段话放到一个表里面,每次要用的时候调出来就行了有更好的办法的高手支招吧
      

  3.   

    现在如果是一个存储过程内部,多调用的段落,就用这种:
    declare @query varchar(max) 
    set @query = ....... 
    但在@query 会直接放在整体语句中,+'@query '+;但现在是会有多个存储过程共用1段不完整的sql语句。总共应该是大于20句的,
    那么怎么将其放在一个表中呢??不是在创建一个存储过程,然后在其他存储过程中调用这个存储过程吗?
    有没有具体例子?
    网上的确是不是很好找
      

  4.   

    比如你的语句是这样的select * 
    from tableX
    where blablabla如果from 这段(比如有10来排), where这段(比如又有10来排),需要不断的重复运用
    那你先可以把这两段存到一个表里,比如TQuery,字段a b那么在每个存储过程里,
    declare @query1 varchar 
    declare @query2 varchar
    select @query1 = a, @query2 = b from tquery
    然后要用的时候
    declare query varchar(max)
    query = 'select * ' + @query1 + ' tableX ' + @query2
    最后exec (@query)即可。