读书人

把存储过程内容插入到临时表的有关问题

发布时间: 2012-02-08 19:52:21 作者: rapoo

把存储过程内容插入到临时表的问题
我有1存储过程up_Bed_Assign,返回的是1个表数据

我现在新建个存储过程up_Bed_AssignBat,在up_Bed_AssignBat新建1个临时表,然后把up_Bed_Assign的查询结果插入到临时表。

一般用下面的方法插入:
INSERT INTO #tmp EXEC up_Bed_Assign ' '

但是因为我在up_Bed_Assign也使用了
INSERT INTO #tmpRoom EXEC sp_executesql @SqlRoom

所以再用INSERT INTO EXEC就会报错,说不能嵌套使用。

大家有什么办法,帮忙!!!



[解决办法]
应该考虑使用全局临时表(##开头,需要自己维护建立和删除),好处是 不必多次插入,实现数据交流

INSERT INTO #tmp EXEC up_Bed_Assign ' '
这个方法总给人别扭的感觉

[解决办法]
CREATE PROC TEST
AS
SELECT TOP 10* FROM jobs
DROP PROC TEST


select * into #t1
from openrowset( 'msdasql ', 'driver={sql server};server=192.168.111.205;uid=sa;pwd= ', 'exec pubs.dbo.TEST ') AS a

select * from #t1

job_id job_desc min_lvl max_lvl
------ -------------------------------------------------- ------- -------
1 New Hire - Job not specified 10 10
2 Chief Executive Officer 200 250
3 Business Operations Manager 175 225
4 Chief Financial Officier 175 250
5 Publisher 150 250
6 Managing Editor 140 225
7 Marketing Manager 120 200
8 Public Relations Manager 100 175
9 Acquisitions Manager 75 175
10 Productions Manager 75 165

(10 row(s) affected)

[解决办法]
1.
Exec sp_serveroption 'servername ', 'Data Access ', 'True '
go
Select * INTO #tmpWho
From OpenQuery(servername, 'Exec 存储过程 ')

2.
先建一个表#TempTable
INSERT INTO [#TempTable] Exec 存储过程

读书人网 >SQL Server

热点推荐