Sql 从存储过程中的select语句调用存储过程

Sql 从存储过程中的select语句调用存储过程,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我有一个SQL Server 2016数据库,其中有一个存储XML文件的表。如果可能,我想做的是调用另一个存储过程并传入ApplicationID值 我的代码是 select RecID, nref.value('APPLICATION_ID[1]','varchar(max)') ApplicationID , nref.value('FY[1]','varchar(max)') FY into ADMIN_stagingTable from [

我有一个SQL Server 2016数据库,其中有一个存储XML文件的表。如果可能,我想做的是调用另一个存储过程并传入
ApplicationID

我的代码是

select 
    RecID, 
    nref.value('APPLICATION_ID[1]','varchar(max)') ApplicationID ,
    nref.value('FY[1]','varchar(max)') FY 
into
    ADMIN_stagingTable
from 
    [ADMIN_Grant_Exporter_Files_XML] 
cross apply 
    XMLData.nodes('PROJECTS[1]/row[1]') as R(nref)
where 
    nref.value('ORG_DUNS[1]', 'varchar(max)') = '183710748'
我目前正在将其存储到暂存表中。有没有比循环结果集更好的方法

SELECT @APPLICATION_ID = ApplicationID 
FROM ADMIN_stagingTable

EXECUTE  [Parse_Exporter] @APPLICATION_ID
尝试使用函数。 您可以将SP的脚本放入函数中,然后调用它 将函数命名为fn_Parse_Exporter

像这样使用

SELECT *, dbo.fn_Parse_Exporter(ApplicationID)
FROM My_Table

那可能行得通——我试试看。存储过程是一个糟糕的XML解析例程。但这很有趣。Thanks@user1314159仅供参考:如果您不想复制代码,还有一些方法可以从函数运行SP。这看起来对我不起作用,因为我正在删除数据并将其插入表中,并且在函数中出现了无效使用的错误,影响了运算符插入。我已将此标记为答案,但我现在无法使用,但可以使用它在另一个地方