有两个问题
第一个:我已经有一个存储过程proc1,这个存储过程主要就是返回一个表,也就是这个存储过程里面有一个select语句。
好,下面我正在写另外一个存储过程proc2,在这个存储过程里面,我需要得到一个临时表#Taa,这个临时表的结构和数据就是储过程proc1返回的表的内容。有什么好办法吗?第二个:在一个存储过程里面,我用拼接字符串的办法得到了一个select语句(为什么拼接是因为从存储过程的参数传来了排序和过滤语句),比如含有这个select语句的字符串变量是@strSql,接下来我要得到一个临时表#Taa,这个这个临时表的结构和数据就是@strSql字符串变量里面的语句返回的表的内容。有什么好办法吗?
第一个:我已经有一个存储过程proc1,这个存储过程主要就是返回一个表,也就是这个存储过程里面有一个select语句。
好,下面我正在写另外一个存储过程proc2,在这个存储过程里面,我需要得到一个临时表#Taa,这个临时表的结构和数据就是储过程proc1返回的表的内容。有什么好办法吗?第二个:在一个存储过程里面,我用拼接字符串的办法得到了一个select语句(为什么拼接是因为从存储过程的参数传来了排序和过滤语句),比如含有这个select语句的字符串变量是@strSql,接下来我要得到一个临时表#Taa,这个这个临时表的结构和数据就是@strSql字符串变量里面的语句返回的表的内容。有什么好办法吗?
你可以试试,在SQL Server Management Studio里面,在第一个查询窗口中创建一个临时表,然后新建一个查询窗口,在里面操作前面建立的临时表,就会返回表不存在的错误信息。
在一个回话里面使用两个存储过程。
object_id('tempdb.dbo.#临时表名')
INSERT INTO #Temp
EXEC PROC1
(存储过程的结果以这样的方式写入到表里,但是必须先定义好表)
2、同一
INSERT INTO #Temp
EXEC(@strSQL)
第一个:我已经有一个存储过程proc1,这个存储过程主要就是返回一个表,也就是这个存储过程里面有一个select语句。
好,下面我正在写另外一个存储过程proc2,在这个存储过程里面,我需要得到一个临时表#Taa,这个临时表的结构和数据就是储过程proc1返回的表的内容。有什么好办法吗?
答:
在proc2中创建一临时表#taa,结构与proc1过程返回表结构相同
然后用 insert into #taa exec proc1
插入数据,不过此方法只能单层,不能多层,也就是如果再创建proc3时,如果proc2返回结果,返回的结果不能再用insert into ....exec proc2插入数据。
第二个:在一个存储过程里面,我用拼接字符串的办法得到了一个select语句(为什么拼接是因为从存储过程的参数传来了排序和过滤语句),比如含有这个select语句的字符串变量是@strSql,接下来我要得到一个临时表#Taa,这个这个临时表的结构和数据就是@strSql字符串变量里面的语句返回的表的内容。有什么好办法吗?
根据select 的字段创建一临时表,再用insert into #taa exec (@strsql) 插入数据