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

时间:2017-06-09 02:22:33

标签: 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 
    [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

1 个答案:

答案 0 :(得分:1)

尝试使用功能。 你可以将SP的脚本放在一个函数中然后你可以调用它 将函数命名为fn_Parse_Exporter

并像这样使用

SELECT *, dbo.fn_Parse_Exporter(ApplicationID)
FROM My_Table