2017-06-09 19 views
0

XMLファイルを格納するテーブルを持つSQL Server 2016データベースがあります。可能であれば、別のストアドプロシージャを呼び出してApplicationIDの値を渡すことです。私は現在、ステージング表にそれを格納していストアドプロシージャのselectステートメントからストアドプロシージャを呼び出す

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

機能を試してください。 あなたは、関数内でSPのスクリプトを置くことができ、その後、あなたはそれが機能fn_Parse_Exporterに

に名前を付け、仕事ができることは、この

SELECT *, dbo.fn_Parse_Exporter(ApplicationID) 
FROM My_Table 
+1

ように使用 呼び出すことができます - 私はそれを試してみますよ。ストアドプロシージャは、XMLパースルーチンの途中です。しかし、これは面白いです。ありがとう – user1314159

+0

助けがあれば答えとして – asmgx

+0

@ user1314159参考:コードを複製したくない場合は、関数からSPを実行する方法もあります。 – Anton

関連する問題