Sql 从存储过程中的select语句调用存储过程
我有一个SQL Server 2016数据库,其中有一个存储XML文件的表。如果可能,我想做的是调用另一个存储过程并传入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 [
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。这看起来对我不起作用,因为我正在删除数据并将其插入表中,并且在函数中出现了无效使用的错误,影响了运算符插入。我已将此标记为答案,但我现在无法使用,但可以使用它在另一个地方