I am attempting to create a well formed XML representation of my database using the FOR XML EXPLICIT function. However, after creating a UNION statement for just 4 of tables I need to export, it has practically slowed to a halt!
I am sure some of this has to do with the UNION of the 4 select statements...but that is the only way I have found to do this? If anyone can help me out in a better way of creating a well formed XML representation, I will greatly appreciate it!
I am going to post the statement I have so far below...
Thanks!
I am sure some of this has to do with the UNION of the 4 select statements...but that is the only way I have found to do this? If anyone can help me out in a better way of creating a well formed XML representation, I will greatly appreciate it!
I am going to post the statement I have so far below...
Code:
CREATE PROCEDURE XMLOUTPUT AS
SELECT DISTINCT
1 AS Tag,
NULL AS PARENT,
dbo.Title.ItemNumber as [Title!1!ItemNumber!element]
, dbo.Title.UPC as [Title!1!UPC!element]
, dbo.Title.Title as [Title!1!Title!element]
, dbo.Title.Duration as [Title!1!Duration!element]
, dbo.Title.ReleaseDD as [Title!1!ReleaseDD!element]
, dbo.Title.ReleaseMM as [Title!1!ReleaseMM!element]
, dbo.Title.ReleaseYY as [Title!1!ReleaseYY!element]
, dbo.Title.NumberofDiscs as [Title!1!NumberofDiscs!element]
, dbo.Title.Label_HK as [Title!1!Lable_HK!element]
, NULL as [TrackNumber!2!Track_Count!element]
, NULL as [TrackNumber!2!CD_Number!element],
NULL as [dbo.export_track!3!ISRC!element],
NULL as [dbo.export_track!3!Track_Desc!element],
NULL as [dbo.export_track!3!CD!element],
NULL as [dbo.export_track!3!Track!element],
NULL as [dbo.export_track!3!Timing!element],
NULL as [dbo.export_works!4!Work_Desc!element],
NULL as [dbo.export_works!4!Year_Comp!element],
NULL as [dbo.export_works!4!Work_Timing!element],
NULL as [dbo.export_works!4!Recording_Venue!element],
NULL as [dbo.export_works!4!Recording_Dates!element]
FROM dbo.Title
Where dbo.Title.ItemNumber = '8557428'
UNION ALL
SELECT DISTINCT
2 as Tag,
1 as PARENT,
dbo.Title.ItemNumber
, dbo.Title.UPC
, dbo.Title.Title
, dbo.Title.Duration
, dbo.Title.ReleaseDD
, dbo.Title.ReleaseMM
, dbo.Title.ReleaseYY
, dbo.Title.NumberofDiscs
, dbo.Title.Label_HK
, dbo.TrackNumber.Track_Count
, dbo.TrackNumber.CD,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
FROM dbo.Title
INNER JOIN dbo.TrackNumber ON dbo.Title.ItemNumber = dbo.TrackNumber.Item_Code
UNION ALL
SELECT DISTINCT
3 as TAG,
2 as PARENT,
dbo.Title.ItemNumber
, dbo.Title.UPC
, dbo.Title.Title
, dbo.Title.Duration
, dbo.Title.ReleaseDD
, dbo.Title.ReleaseMM
, dbo.Title.ReleaseYY
, dbo.Title.NumberofDiscs
, dbo.Title.Label_HK
, dbo.TrackNumber.Track_Count
, dbo.TrackNumber.CD,
dbo.export_track.ISRC,
dbo.export_track.Track_Desc,
dbo.export_track.CD,
dbo.export_track.Track,
dbo.export_track.Timing,
NULL,
NULL,
NULL,
NULL,
NULL
FROM dbo.TrackNumber, dbo.Title INNER JOIN dbo.export_track ON dbo.Title.ItemNumber = dbo.export_track.Item_Code
UNION ALL
SELECT 4 as TAG, 3 as PARENT,
dbo.Title.ItemNumber
, dbo.Title.UPC
, dbo.Title.Title
, dbo.Title.Duration
, dbo.Title.ReleaseDD
, dbo.Title.ReleaseMM
, dbo.Title.ReleaseYY
, dbo.Title.NumberofDiscs
, dbo.Title.Label_HK
, dbo.TrackNumber.Track_Count
, dbo.TrackNumber.CD,
dbo.export_track.ISRC,
dbo.export_track.Track_Desc,
dbo.export_track.CD,
dbo.export_track.Track,
dbo.export_track.Timing,
dbo.export_works.Work_Desc,
dbo.export_works.Year_Comp,
dbo.export_works.Timing,
dbo.export_works.Recording_Venue,
dbo.export_works.Recording_Dates
FROM dbo.Title, dbo.TrackNumber, dbo.export_track INNER JOIN dbo.export_works ON dbo.export_track.WorkID = dbo.export_works.Work_ID
FOR XML EXPLICIT
GO