从存储过程中选择

Ole*_*bra 2 sql-server stored-procedures

您好Workers,我的数据库中有一个表。另外我有一个存储过程,它返回一个表Id, xmlData和 xml Schemaby Worker.Id。我想选择所有Worker.Id值并为每个Worker.id. 这是一些脚本:

create table #tmpXmlreturn
(
    Id int,
    Data xml,
    [Schema] xml
)

select dbo.Workers.Id as Id, 
        Exec dbo.GetBranchByWorkerId Id,
into #temptable from
dbo.Workers
Run Code Online (Sandbox Code Playgroud)

如果您需要我提供更多信息,请告诉我。

Jam*_*son 5

这应该做你需要的。

DECLARE @Id INT

create table #tmpXmlreturn
(
    Data xml,
)

create table #Ids(
    Id int
)

INSERT INTO #Ids
select dbo.Workers.Id as Id
from dbo.Workers

WHILE EXISTS(SELECT * FROM #Ids)
BEGIN
  SELECT TOP 1 @Id = Id FROM #Ids  

  INSERT INTO #tmpXmlreturn
  Exec dbo.GetBranchByWorkerId @Id

  DELETE FROM #Ids WHERE Id = @Id
END

SELECT * FROM #tmpXmlreturn
DROP TABLE #tmpXmlreturn
Run Code Online (Sandbox Code Playgroud)