    
-1 |
|
Ik heb een stored procedure in MSSQL:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Author: Michiel Alders
-- Create date: 13/10/2009
-- Description: Bergplaats matrijzen voor loogafdeling
-- =============================================
ALTER PROCEDURE [dbo].[sp_BergplaatsMatrijzen]
@data varchar(MAX)
AS
DECLARE @docHandle int
exec sp_xml_preparedocument @docHandle OUTPUT,@data
SELECT * FROM OPENXML (@docHandle, '/Select/Data',3)
WITH (Matrijs varchar(4), Profiel varchar(2), Proef varchar(1))
exec sp_xml_removedocument @docHandle
SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON go -- ============================================= -- Author: Michiel Alders -- Create date: 13/10/2009 -- Description: Bergplaats matrijzen voor loogafdeling -- ============================================= ALTER PROCEDURE [dbo].[sp_BergplaatsMatrijzen] @DATA varchar(MAX) AS DECLARE @docHandle int exec sp_xml_preparedocument @docHandle OUTPUT,@DATA SELECT * FROM OPENXML (@docHandle, '/Select/Data',3) WITH (Matrijs varchar(4), Profiel varchar(2), Proef varchar(1)) exec sp_xml_removedocument @docHandle
Die wordt aangeroepen als:
sp_BergplaatsMatrijzen
'
<Select>
<Data>
<Matrijs>3127</Matrijs>
<Profiel>01</Profiel>
<Proef>J</Proef>
</Data>
</Select>
'
sp_BergplaatsMatrijzen ' <Select> <Data> <Matrijs>3127</Matrijs> <Profiel>01</Profiel> <Proef>J</Proef> </Data> </Select> '
Dit geeft mij het resultaat:
Matrijs Profiel Proef
------- ------- -----
3127 01 J
Matrijs Profiel Proef ------- ------- ----- 3127 01 J
Wat voor mij de perfecte uitkomst is.
Maar ik zou graag deze storedprocedure gebruiken met een parameter voor de velden te definiëren zodat ik ook andere XML structuren kan doorgeven aan deze stored procedure.
dus de code:
WITH (Matrijs varchar(4), Profiel varchar(2), Proef varchar(1))
WITH (Matrijs varchar(4), Profiel varchar(2), Proef varchar(1))
zou ik willen vervangen door:
Dan kan ik niet alleen <Matrijs><Profiel> en <Proef> doorgeven maar ook andere Kolommen.
Maar die WITH lijkt geen parameters te ondersteunen.
Iemand een idee wat ik hier tegen kan beginnen?
|