Search

onze sponsors

microsoft_logo.gif


 

computrain_logo.JPG

Forum Login | Register
   Forum

 

Subject: SQL Server 2005: Probleem met Relationele data extractie uit XML
Prev Next
You are not authorized to post a reply.

Author Messages
Ian SmithUser is Offline

Posts:8

27-03-2007 19:48:31 Alert 

Hallo allemaal

Ik loop binnen SQL Server 2005 standard edition tegen een vervelend probleem aan. Ik krijg, door het uit laten voeren van een stored procedure, de foutmelding:

Msg 8623, Level 16, State 1, Line 139

The query processor ran out of internal resources and could not produce a query plan. This is a rare event and only expected for extremely complex queries or queries that reference a very large number of tables or partitions. Please simplify the query. If you believe you have received this message in error, contact Customer Support Services for more information.

De stored procedure leest door middel van de nodes() method data uit een XML document opgeslagen in een kolom. Het is een vrij grote sp maar om een idee te geven zal ik toch de code moeten geven, eh voila zie onderstaande sp:

USE [SOAP_Repos]
GO
/****** Object:  StoredProcedure [dbo].[sp_SOAP_SetWoningGegevens]    Script Date: 03/27/2007 19:37:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:   Ian Smith
-- Create date: 22-03-2007
-- Description:  Bewaard XML document en extraheert relationele data
-- Source:   Soap Service
-- =============================================
ALTER PROCEDURE [dbo].[sp_SOAP_SetWoningGegevens] (@vheupdate AS XML)
AS
BEGIN TRY
  SET NOCOUNT ON;
  DECLARE @WoningXML_id AS int
  PRINT 'STAP1:  Insert XML document in tb_Import_WoningGegevensXML'
   INSERT dbo.tb_Import_WoningGegevensXML(woningGegevensXML) VALUES (@vheupdate)
  PRINT 'STAP2:  Pak primaire sleutel om secundaire sleutel te vullen' 
   SELECT @WoningXML_id = (
             SELECT id FROM tb_Import_WoningGegevensXML
             WHERE id in (SELECT max(id) FROM tb_Import_WoningGegevensXML)
            ) 
  PRINT 'STAP2A: Insert Corporatie en Woning sleutel gegevens'
   INSERT INTO tb_Import_WoningGegevensRelationeel
   (
    WoningXML_id,
    vhe,
    corporatieNummerNCCW
   )
   SELECT
    @WoningXML_id,
    VHE.C.value('(./vhe)Ώ]','nvarchar(max)') As VheNummerUitgebreid,
    identificatiecode.C.value('(.)Ώ]','nvarchar(max)') Identificatiecode
   FROM @vheupdate.nodes('//row') VHE(C)
    OUTER APPLY VHE.C.nodes('./identificatiecode') identificatiecode(C)
  PRINT 'STAP2B: Update Woning adresgegevens plus aantal kamers'
   UPDATE tb_Import_WoningGegevensRelationeel
   SET
     complexnummer = q.complexnummer,
     straatnaam = q.straatnaam,
     huisnummer = q.huisnummer,
     toevoeging = q.toevoeging,
     postcodeCijfers = q.postcodeCijfers,
     postcodeLetters = q.postcodeLetters,
     plaats = q.plaats,
     aantalKamers = q.aantalKamers
   FROM
     (
      SELECT
       VHE.C.value('(./vhe)Ώ]','nvarchar(max)') As VheNummerUitgebreid,
       complexnummer.C.value('(.)Ώ]','nvarchar(max)') complexnummer,
       straatnaam.C.value('(.)Ώ]','nvarchar(max)') straatnaam,
       huisnummer.C.value('(.)Ώ]','nvarchar(max)') huisnummer,
       toevoeging.C.value('(.)Ώ]','nvarchar(max)') toevoeging,
       postcodeCijfers.C.value('(.)Ώ]','nvarchar(max)') postcodeCijfers,
       postcodeLetters.C.value('(.)Ώ]','nvarchar(max)') postcodeLetters,
       plaats.C.value('(.)Ώ]','nvarchar(max)') plaats,
       aantalKamers.C.value('(.)Ώ]','nvarchar(max)') aantalKamers
      FROM @vheupdate.nodes('//row') VHE(C)
       OUTER APPLY VHE.C.nodes('./complexnummer') complexnummer(C)
       OUTER APPLY VHE.C.nodes('./straatnaam') straatnaam(C)
       OUTER APPLY VHE.C.nodes('./huisnummer') huisnummer(C)
       OUTER APPLY VHE.C.nodes('./toevoeging') toevoeging(C)
       OUTER APPLY VHE.C.nodes('./postcodeCijfers') postcodeCijfers(C)
       OUTER APPLY VHE.C.nodes('./postcodeLetters') postcodeLetters(C)
       OUTER APPLY VHE.C.nodes('./plaats') plaats(C)
       OUTER APPLY VHE.C.nodes('./aantalKamers') aantalKamers(C)
     )q
     WHERE vhe = q.VheNummerUitgebreid AND WoningXML_id = @WoningXML_id
  PRINT 'STAP2B: Update Woning oppervlaktes'
   UPDATE tb_Import_WoningGegevensRelationeel
   SET
     oppwoonkamer1 = q.oppwoonkamer1,
     oppwoonkamer2 = q.oppwoonkamer2,
     oppvertrektotaal = q.oppvertrektotaal,
     oppovvertrek1 = q.oppovvertrek1,
     oppovvertrek2 = q.oppovvertrek2,
     oppzolder = q.oppzolder,
     oppslaapkamer1 = q.oppslaapkamer1,
     oppslaapkamer2 = q.oppslaapkamer2,
     oppslaapkamer3 = q.oppslaapkamer3,
     oppslaapkamer4 = q.oppslaapkamer4
   FROM
     (
      SELECT
       VHE.C.value('(./vhe)Ώ]','nvarchar(max)') As VheNummerUitgebreid,
       oppwoonkamer1.C.value('(.)Ώ]','nvarchar(max)') oppwoonkamer1,
       oppwoonkamer2.C.value('(.)Ώ]','nvarchar(max)') oppwoonkamer2,
       oppvertrektotaal.C.value('(.)Ώ]','nvarchar(max)') oppvertrektotaal,
       oppovvertrek1.C.value('(.)Ώ]','nvarchar(max)') oppovvertrek1,
       oppovvertrek2.C.value('(.)Ώ]','nvarchar(max)') oppovvertrek2,
       oppzolder.C.value('(.)Ώ]','nvarchar(max)') oppzolder,
       oppslaapkamer1.C.value('(.)Ώ]','nvarchar(max)') oppslaapkamer1,
       oppslaapkamer2.C.value('(.)Ώ]','nvarchar(max)') oppslaapkamer2,
       oppslaapkamer3.C.value('(.)Ώ]','nvarchar(max)') oppslaapkamer3,
       oppslaapkamer4.C.value('(.)Ώ]','nvarchar(max)') oppslaapkamer4
      FROM @vheupdate.nodes('//row') VHE(C)
       OUTER APPLY VHE.C.nodes('./oppwoonkamer1') oppwoonkamer1(C)
       OUTER APPLY VHE.C.nodes('./oppwoonkamer2') oppwoonkamer2(C)
       OUTER APPLY VHE.C.nodes('./oppvertrektotaal') oppvertrektotaal(C)
       OUTER APPLY VHE.C.nodes('./oppovvertrek1') oppovvertrek1(C)
       OUTER APPLY VHE.C.nodes('./oppovvertrek2') oppovvertrek2(C)
       OUTER APPLY VHE.C.nodes('./oppzolder') oppzolder(C)
       OUTER APPLY VHE.C.nodes('./oppslaapkamer1') oppslaapkamer1(C)
       OUTER APPLY VHE.C.nodes('./oppslaapkamer2') oppslaapkamer2(C)
       OUTER APPLY VHE.C.nodes('./oppslaapkamer3') oppslaapkamer3(C)
       OUTER APPLY VHE.C.nodes('./oppslaapkamer4') oppslaapkamer4(C)
     )q
   WHERE vhe = q.VheNummerUitgebreid AND WoningXML_id = @WoningXML_id
  PRINT 'STAP2C: Update Woning huur en kost gegevens'
   UPDATE tb_Import_WoningGegevensRelationeel
   SET
     subshuur = q.subshuur,
     streefhuur = q.streefhuur,
     nettohuur = q.nettohuur,
     servicekosten = q.servicekosten,
     stookkosten = q.stookkosten,
     wozwaarde = q.wozwaarde
   FROM
     (
      SELECT
       VHE.C.value('(./vhe)Ώ]','nvarchar(max)') As VheNummerUitgebreid,
       subshuur.C.value('(.)Ώ]','nvarchar(max)') subshuur,
       streefhuur.C.value('(.)Ώ]','nvarchar(max)') streefhuur,
       nettohuur.C.value('(.)Ώ]','nvarchar(max)') nettohuur,
       servicekosten.C.value('(.)Ώ]','nvarchar(max)') servicekosten,
       stookkosten.C.value('(.)Ώ]','nvarchar(max)') stookkosten,
       wozwaarde.C.value('(.)Ώ]','nvarchar(max)') wozwaarde
      FROM @vheupdate.nodes('//row') VHE(C)
       OUTER APPLY VHE.C.nodes('./subshuur') subshuur(C)
       OUTER APPLY VHE.C.nodes('./streefhuur') streefhuur(C)
       OUTER APPLY VHE.C.nodes('./nettohuur') nettohuur(C)
       OUTER APPLY VHE.C.nodes('./servicekosten') servicekosten(C)
       OUTER APPLY VHE.C.nodes('./stookkosten') stookkosten(C)
       OUTER APPLY VHE.C.nodes('./wozwaarde') wozwaarde(C)
     )q
   WHERE vhe = q.VheNummerUitgebreid AND WoningXML_id = @WoningXML_id
  PRINT 'STAP2C: Update Woning huur en kost gegevens'
   UPDATE tb_Import_WoningGegevensRelationeel
   SET
     cv_aanwezig = q.cv_aanwezig,
     stadsverwarming = q.stadsverwarming,
     cv_combi = q.cv_combi,
     warmtemeter = q.warmtemeter,
     oppberging = q.oppberging,
     verhuurdatum = q.verhuurdatum,
     garage_carport = q.garage_carport,
     bouwjaar = q.bouwjaar,
     lift_aanwezig = q.lift_aanwezig,
     codebuitenruimte = q.codebuitenruimte,
     marktkenmerk = q.marktkenmerk,
     gebruik = q.gebruik
   FROM
     (
      SELECT
       VHE.C.value('(./vhe)Ώ]','nvarchar(max)') As VheNummerUitgebreid,
       cv_aanwezig.C.value('(.)Ώ]','nvarchar(max)') cv_aanwezig,
       stadsverwarming.C.value('(.)Ώ]','nvarchar(max)') stadsverwarming,
       cv_combi.C.value('(.)Ώ]','nvarchar(max)') cv_combi,
       warmtemeter.C.value('(.)Ώ]','nvarchar(max)') warmtemeter,
       oppberging.C.value('(.)Ώ]','nvarchar(max)') oppberging,
       verhuurdatum.C.value('(.)Ώ]','nvarchar(max)') verhuurdatum,
       garage_carport.C.value('(.)Ώ]','nvarchar(max)') garage_carport,
       bouwjaar.C.value('(.)Ώ]','nvarchar(max)') bouwjaar,
       lift_aanwezig.C.value('(.)Ώ]','nvarchar(max)') lift_aanwezig,
       codebuitenruimte.C.value('(.)Ώ]','nvarchar(max)') codebuitenruimte,
       marktkenmerk.C.value('(.)Ώ]','nvarchar(max)') marktkenmerk,
       gebruik.C.value('(.)Ώ]','nvarchar(max)') gebruik
      FROM @vheupdate.nodes('//row') VHE(C)
       OUTER APPLY VHE.C.nodes('./cv_aanwezig') cv_aanwezig(C)
       OUTER APPLY VHE.C.nodes('./stadsverwarming') stadsverwarming(C)
       OUTER APPLY VHE.C.nodes('./cv_combi') cv_combi(C)
       OUTER APPLY VHE.C.nodes('./warmtemeter') warmtemeter(C)
       OUTER APPLY VHE.C.nodes('./oppberging') oppberging(C)
       OUTER APPLY VHE.C.nodes('./verhuurdatum') verhuurdatum(C)
       OUTER APPLY VHE.C.nodes('./garage_carport') garage_carport(C)
       OUTER APPLY VHE.C.nodes('./bouwjaar') bouwjaar(C)
       OUTER APPLY VHE.C.nodes('./lift_aanwezig') lift_aanwezig(C)
       OUTER APPLY VHE.C.nodes('./codebuitenruimte') codebuitenruimte(C)
       OUTER APPLY VHE.C.nodes('./marktkenmerk') marktkenmerk(C)
       OUTER APPLY VHE.C.nodes('./gebruik') gebruik(C)
     )q
   WHERE vhe = q.VheNummerUitgebreid AND WoningXML_id = @WoningXML_id
END TRY
BEGIN CATCH
  EXEC dbo.sp_SOAP_SetWoningGegevensError 'sp_SOAP_SetWoningGegevens','Onbekend','local'
END CATCH
Wanneer ik de stappen individueel uitvoer gaat het goed. Echter gaat het in de sp (dus als totaal) fout. Ik heb geprobeerd om met #tabellen te werken door het XML fragment eerst als relationele data in een temp tabel te laden waarna ik de update uitvoer, helaas geeft dit dezelfde foutmelding.

Service Pack 2 zou de oplossing moeten bevatten maar allaas, no such luck :)

Heeft iemand een idee wat de oplossing zou kunnen zijn?

André KammanUser is Offline
PASS Nederland

Posts:124


28-03-2007 07:46:45 Alert 
Beste Ian,

Is het mogelijk dat je naast deze stored procedure ook de create scripts voor de tabllen post en een voorbeeld xml ?
Dan kan ik e.e.a. wellicht reproduceren.

Groeten,

André
Ian SmithUser is Offline

Posts:8

28-03-2007 10:58:30 Alert 
Natuurlijk, het gaat om de volgende drie tabellen:

tb_Import_WoningGegevensXML
tb_Import_WoningGegevensRelationeel
tb_Import_WoningGegevensErrorLog

Tabel Scripts:

USE [SOAP_Repos]
GO
/****** Object:  Table [dbo].[tb_Import_WoningGegevensXML]    Script Date: 03/28/2007 10:46:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tb_Import_WoningGegevensXML](
 [id] [int] IDENTITY(1,1) NOT NULL,
 [woningGegevensXML] [xml] NOT NULL,
 CONSTRAINT [PK_tb_Import_WoningGegevensXML] PRIMARY KEY CLUSTERED
(
 [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
USE [SOAP_Repos]
GO
/****** Object:  Table [dbo].[tb_Import_WoningGegevensRelationeel]    Script Date: 03/28/2007 10:46:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tb_Import_WoningGegevensRelationeel](
 [VheUpdateID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
 [WoningXML_id] [int] NOT NULL,
 [verwerkt] [smallint] NULL CONSTRAINT [DF_tb_Import_VheUpdate_XML_Verwerkt]  DEFAULT ((0)),
 [vhe] [varchar](50) NULL,
 [corporatieNummerNCCW] [varchar](50) NULL,
 [corporatieNummer] [varchar](50) NULL,
 [complexnummer] [varchar](50) NULL,
 [straatnaam] [varchar](50) NULL,
 [huisnummer] [varchar](50) NULL,
 [toevoeging] [varchar](50) NULL,
 [postcodeCijfers] [varchar](50) NULL,
 [postcodeLetters] [varchar](50) NULL,
 [plaats] [varchar](50) NULL,
 [aantalKamers] [varchar](50) NULL,
 [oppwoonkamer1] [varchar](50) NULL,
 [oppwoonkamer2] [varchar](50) NULL,
 [subshuur] [varchar](50) NULL,
 [streefhuur] [varchar](50) NULL,
 [oppvertrektotaal] [varchar](50) NULL,
 [cv_aanwezig] [varchar](50) NULL,
 [stadsverwarming] [varchar](50) NULL,
 [cv_combi] [varchar](50) NULL,
 [warmtemeter] [varchar](50) NULL,
 [oppberging] [varchar](50) NULL,
 [wozwaarde] [varchar](50) NULL,
 [verhuurdatum] [varchar](50) NULL,
 [nettohuur] [varchar](50) NULL,
 [servicekosten] [varchar](50) NULL,
 [stookkosten] [varchar](50) NULL,
 [oppslaapkamer1] [varchar](50) NULL,
 [oppslaapkamer2] [varchar](50) NULL,
 [oppslaapkamer3] [varchar](50) NULL,
 [oppslaapkamer4] [varchar](50) NULL,
 [garage_carport] [varchar](50) NULL,
 [bouwjaar] [varchar](50) NULL,
 [lift_aanwezig] [varchar](50) NULL,
 [codebuitenruimte] [varchar](50) NULL,
 [oppovvertrek1] [varchar](50) NULL,
 [oppovvertrek2] [varchar](50) NULL,
 [oppzolder] [varchar](50) NULL,
 [marktkenmerk] [varchar](50) NULL,
 [gebruik] [varchar](50) NULL,
 [tijdRegistratie]  AS (getdate()),
 CONSTRAINT [PK_tb_Import_VheUpdate_XML] PRIMARY KEY CLUSTERED
(
 [VheUpdateID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[tb_Import_WoningGegevensRelationeel]  WITH CHECK ADD  CONSTRAINT [FK_tb_Import_WoningGegevensRelationeel_tb_Import_WoningGegevensXML] FOREIGN KEY([WoningXML_id])
REFERENCES [dbo].[tb_Import_WoningGegevensXML] ([id])
GO
ALTER TABLE [dbo].[tb_Import_WoningGegevensRelationeel] CHECK CONSTRAINT [FK_tb_Import_WoningGegevensRelationeel_tb_Import_WoningGegevensXML]
USE [SOAP_Repos]
GO
/****** Object:  Table [dbo].[tb_Import_WoningGegevensErrorLog]    Script Date: 03/28/2007 10:47:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tb_Import_WoningGegevensErrorLog](
 [LogID] [int] IDENTITY(1,1) NOT NULL,
 [Methode] [varchar](50) NOT NULL,
 [ProcesMelding] [ntext] NULL,
 [IPadres] [varchar](50) NULL,
 [TijdMelding] [datetime] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF

Ian SmithUser is Offline

Posts:8

28-03-2007 11:04:33 Alert 
Mmm ik moet even een alternatief bedenken voor het xml bestand. Ik mag deze kennelijk niet posten want het forum accepteert hem niet.
Ian SmithUser is Offline

Posts:8

28-03-2007 11:12:33 Alert 
Ik heb de < en de > tekens vervangen met | dit werkte wel

|vheupdate|
  |WSDLWoning|
    |woning|
      |row num="1"|
        |vhe|92002200500|/vhe|
        |identificatiecode|920|/identificatiecode|
        |complexnummer|22|/complexnummer|
        |straatnaam|PEER|/straatnaam|
        |huisnummer|99|/huisnummer|
        |postcodeCijfers|9999|/postcodeCijfers|
        |postcodeLetters|AA|/postcodeLetters|
        |plaats|APPEL|/plaats|
        |aantalKamers|3|/aantalKamers|
        |oppwoonkamer1|30.40|/oppwoonkamer1|
        |subshuur|510.00|/subshuur|
        |streefhuur|426.99|/streefhuur|
        |oppvertrektotaal|63.31|/oppvertrektotaal|
        |cv_aanwezig|J|/cv_aanwezig|
        |cv_combi|J|/cv_combi|
        |oppberging|4.10|/oppberging|
        |wozwaarde|159800|/wozwaarde|
        |verhuurdatum|20070322|/verhuurdatum|
        |nettohuur|488.27|/nettohuur|
        |servicekosten|32.25|/servicekosten|
        |oppslaapkamer1|13.29|/oppslaapkamer1|
        |oppslaapkamer2|7.70|/oppslaapkamer2|
        |bouwjaar|1993|/bouwjaar|
        |lift_aanwezig|13|/lift_aanwezig|
        |codebuitenruimte|1|/codebuitenruimte|
        |marktkenmerk|46233244|/marktkenmerk|
        |gebruik|8|/gebruik|
      |/row|
    |/woning|
  |/WSDLWoning|
|/vheupdate|
Ian SmithUser is Offline

Posts:8

28-03-2007 11:14:12 Alert 

Merk op dat het bovenstaande xml document uit meerdere WSDLwoning subtrees bestaan. Voor een test zou je die 2 keer kunen kopieren binnen het XML document.

André KammanUser is Offline
PASS Nederland

Posts:124


28-03-2007 13:22:29 Alert 

Ian,

De query blijkt bij mij wel gewoon te werken maar moet er best lang over nadenken.
Wat dacht je van deze methode om een resultset te genereren uit de XML :

Declare @xml xml
Set @xml = hier de test xml !!!

Select

tab
.col.value('@numΏ]', 'int') RowNumber,
tab.col.value('vheΏ]', 'varchar(50)') VHE,
tab.col.value('cv_aanwezigΏ]', 'varchar(50)') cv_aanwezig,
tab.col.value('bouwjaarΏ]', 'varchar(50)') bouwjaar
From @xml.nodes('vheupdate/WSDLWoning/woning/row') as tab(col)
Dit geeft een rij per "row" element in je xml. Je hoeft dus verder niets te "outer-applyen".
Je kunt gewoon alle velden in één keer inserten. (Deze query kun je gewoon uitbreiden met alle velden, je hoeft het niet in stappen te doen zoals in je voorbeeld)

Groeten,

André

p.s. : Omdat je een identity veld gebruikt voor de tabel [tb_Import_WoningGegevensXML], hoef je geen "Select max(ID)" te gebruiken. Na het insert statement is het gebruikte ID op te vragen met : scope_identity()
Het opvragen van een max(id) zal als je tabel begint te groeien al snel veel trager zijn dat het gebruiken van de scope_identity() functie.

p.s. 2 : Je gebruikt een Computed Column om een datum/tijd op te slaan. Ik gok dat de gewenste functionaliteit het opslaan van de Insertdatum is ?
Het resultaat van de gebruikte constructie is echter dat je elke keer wanneer je het record opvraagd de meest recente(systeem) datum/tijd krijgt te zien.
Je kunt in dit geval beter een default gebruiken. En dus : [tijdregistratie] datetime not null default(getdate())

EDIT :

Ik zie dat zowel in jouw berichten Ian, als in mijn eigen reply de [ 1 ] deels vervangen wordt door een omega teken.
Waarom weet ik niet, die zoeken we uit. Samen met het feit dat je geen XML voorbeeld hebt kunnen plaatsen.
Ian SmithUser is Offline

Posts:8

28-03-2007 13:38:50 Alert 

Dat is het helemaal!!

Ik ben gewoon veels te moeilijk bezig geweest :)

Bedankt voor de tips ik zal identity_scope zeker gebruiken. Denk je dat het zin heeft om inplaats van het XML uit de variabele uit een tabel te zlezen? Dit ivm indexen?

In ieder geval nogmaals bedankt!!!

André KammanUser is Offline
PASS Nederland

Posts:124


28-03-2007 13:58:36 Alert 
Graag gedaan !

Als je steeds 1 xml verwerkt is het niet nodig deze uit een tabel te lezen.
De gewone indexen zullen je niet helpen in dit geval. En de xml indexen genereren een dusdanige overhead dat je er niet veel mee opschiet.

Mijn keuze zou zijn om de methode met de variabele te gebruiken.

Groeten,

André
Ian SmithUser is Offline

Posts:8

28-03-2007 14:02:36 Alert 
Duidelijk en met SQL 2005 geldt altijd weer de regel "It depends" ;)

Ik heb in ieder geval jouw antwoord ook op het SQL Server MSDN forum geplaatst, ik heb natuurlijk vermeld dat ik het antwoord via deze site heb verkregen van jouw.
You are not authorized to post a reply.
Forums > Forums > Ontwikkelen > SQL Server 2005: Probleem met Relationele data extractie uit XML



ActiveForums 3.6
  
Copyright (c) 2010 PASS Nederland   Privacy Statement  Terms Of Use