当前位置: 代码迷 >> Sql Server >> 如何把存储过程返回的表创建一个临时表(包含表结构)
  详细解决方案

如何把存储过程返回的表创建一个临时表(包含表结构)

热度:71   发布时间:2016-04-24 09:42:53.0
怎么把存储过程返回的表创建一个临时表(包含表结构)
由于这个存储过程返回的表是动态的,不同的输入参数会造成返回的表字段会有多有少。我现在就是想把整个返回的表的值和结构用一个临时表来完全复制,求哪位大侠看看能不能实现这个?
------解决思路----------------------
恐怕不好办 常规的办法是 

INSERT INTO #TB EXEC...
------解决思路----------------------
你能确定最多的返回字段有多少个吗?如果可以,那么去建立一张最多字段的临时表,每次判断后做插入,插入的字段要收写出来。
------解决思路----------------------
CREATE PROCEDURE getDate(@p int)
AS
BEGIN
    IF OBJECT_ID('tempdb.dbo.#temp') IS NOT NULL
        DROP TABLE #temp

    IF @p = 1
        SELECT a,b INTO #temp FROM table1;
    ELSE IF @p = 2
        SELECT a,c,d,e INTO #temp FROM table1;
    ELSE
        SELECT a,b,c,d,e INTO #temp FROM table1;

    RETURN
END

------解决思路----------------------
动态语句创建普通表和临时表,最大的差别就是能否向上返回。
你要是说能用普通表就没什么难度了。
------解决思路----------------------
还不如直接select *  into temp_table from table这样
  相关解决方案