Hi Posting DDL (Create table statements etc.. ), example data (as insert statements) will help people answer your query. The second query statement in the union clause does not have a FROM clause which is needed for the users table. John [quoted text, click to view] "Timothy V" <tripix@msn.com> wrote in message news:uLj53g2XEHA.808@tk2msftngp13.phx.gbl... > Hi, > I can't seem to get this to work. Its a stored procedure using XML EXPLICIT. > > I'd really appreciate any help. Below is the stored procedure and below that > is the xml syntax I'm trying to achieve. > > Thank you very much in advance, > > Tim (newbie). > > > > CREATE PROCEDURE dbo.FindUser > ( > @userID CHAR(10) > ) > AS > SELECT > 1 AS Tag, > NULL AS Parent, > NULL AS [Users!1], > NULL AS [User!2!userID], > NULL AS [User!2!Username!element], > NULL AS [User!2!Password!element], > NULL AS [User!2!FirstName!element], > NULL AS [User!2!MiddleName!element], > NULL AS [User!2!LastName!element], > NULL AS [User!2!dob], > NULL AS [PostalAddress!3], > NULL, > NULL, > NULL, > NULL, > NULL, > NULL AS [ResidentAddress!3], > NULL, > NULL, > NULL, > NULL, > NULL, > NULL AS [User!2!PhoneNumber!element], > NULL AS [User!2!MobileNumber!element], > NULL AS [User!2!EmailAddress!element] > UNION ALL > SELECT > 2 AS Tag, > 1 AS Parent, > NULL, > Users.userID, > Users.username, > Users.password, > Users.firstName, > Users.middleName, > Users.lastName, > Users.dob, > NULL, > NULL AS [PostalAddress!3!Street!element], > NULL AS [PostalAddress!3!Suburb!element], > NULL AS [PostalAddress!3!State!element], > NULL AS [PostalAddress!3!Postcode!element], > NULL AS [PostalAddress!3!Country!element], > NULL, > NULL AS [ResidentAddress!3!Street!element], > NULL AS [ResidentAddress!3!Suburb!element], > NULL AS [ResidentAddress!3!State!element], > NULL AS [ResidentAddress!3!Postcode!element], > NULL AS [ResidentAddress!3!Country!element], > Users.phoneNumber, > Users.mobileNumber, > Users.emailAddress > UNION ALL > SELECT > 3 AS Tag, > 2 AS Parent, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > Users.postalStreet, > Users.postalSuburb, > Users.postalState, > Users.postalPostcode, > Users.postalCountry, > NULL, > Users.residentStreet, > Users.residentSuburb, > Users.residentState, > Users.residentPostcode, > Users.residentCountry, > NULL, > NULL, > NULL > FROM Users > WHERE Users.userID=@userID > FOR XML EXPLICIT > > > > > <Users> > <User userID="" dob=""> > <Username></Username> > <Password></Password> > <FirstName></FirstName> > <MiddleName></MiddleName> > <LastName></LastName> > <PostalAddress> > <Street></Street> > <Suburb></Suburb> > <State></State> > <Postcode></Postcode> > <Country></Country> > </PostalAddress> > <ResidentAddress> > <Street></Street> > <Suburb></Suburb> > <State></State> > <Postcode></Postcode> > <Country></Country> > </ResidentAddress> > <PhoneNumber></PhoneNumber> > <MobileNumber></MobileNumber> > <EmailAddress></EmailAddress> > </User> > <Users> > >
Hi, I can't seem to get this to work. Its a stored procedure using XML EXPLICIT. I'd really appreciate any help. Below is the stored procedure and below that is the xml syntax I'm trying to achieve. Thank you very much in advance, Tim (newbie). CREATE PROCEDURE dbo.FindUser ( @userID CHAR(10) ) AS SELECT 1 AS Tag, NULL AS Parent, NULL AS [Users!1], NULL AS [User!2!userID], NULL AS [User!2!Username!element], NULL AS [User!2!Password!element], NULL AS [User!2!FirstName!element], NULL AS [User!2!MiddleName!element], NULL AS [User!2!LastName!element], NULL AS [User!2!dob], NULL AS [PostalAddress!3], NULL, NULL, NULL, NULL, NULL, NULL AS [ResidentAddress!3], NULL, NULL, NULL, NULL, NULL, NULL AS [User!2!PhoneNumber!element], NULL AS [User!2!MobileNumber!element], NULL AS [User!2!EmailAddress!element] UNION ALL SELECT 2 AS Tag, 1 AS Parent, NULL, Users.userID, Users.username, Users.password, Users.firstName, Users.middleName, Users.lastName, Users.dob, NULL, NULL AS [PostalAddress!3!Street!element], NULL AS [PostalAddress!3!Suburb!element], NULL AS [PostalAddress!3!State!element], NULL AS [PostalAddress!3!Postcode!element], NULL AS [PostalAddress!3!Country!element], NULL, NULL AS [ResidentAddress!3!Street!element], NULL AS [ResidentAddress!3!Suburb!element], NULL AS [ResidentAddress!3!State!element], NULL AS [ResidentAddress!3!Postcode!element], NULL AS [ResidentAddress!3!Country!element], Users.phoneNumber, Users.mobileNumber, Users.emailAddress UNION ALL SELECT 3 AS Tag, 2 AS Parent, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Users.postalStreet, Users.postalSuburb, Users.postalState, Users.postalPostcode, Users.postalCountry, NULL, Users.residentStreet, Users.residentSuburb, Users.residentState, Users.residentPostcode, Users.residentCountry, NULL, NULL, NULL FROM Users WHERE Users.userID=@userID FOR XML EXPLICIT <Users> <User userID="" dob=""> <Username></Username> <Password></Password> <FirstName></FirstName> <MiddleName></MiddleName> <LastName></LastName> <PostalAddress> <Street></Street> <Suburb></Suburb> <State></State> <Postcode></Postcode> <Country></Country> </PostalAddress> <ResidentAddress> <Street></Street> <Suburb></Suburb> <State></State> <Postcode></Postcode> <Country></Country> </ResidentAddress> <PhoneNumber></PhoneNumber> <MobileNumber></MobileNumber> <EmailAddress></EmailAddress> </User> <Users>
Hi This will work: CREATE PROCEDURE dbo.FindUser ( @userID INT ) AS SELECT 1 AS Tag, NULL AS Parent, NULL AS [Users!1], NULL AS [User!2!userID], NULL AS [User!2!Username!element], NULL AS [User!2!Password!element], NULL AS [User!2!FirstName!element], NULL AS [User!2!MiddleName!element], NULL AS [User!2!LastName!element], NULL AS [User!2!dob], NULL AS [PostalAddress!3], NULL AS [PostalAddress!3!Street!element], NULL AS [PostalAddress!3!Suburb!element], NULL AS [PostalAddress!3!State!element], NULL AS [PostalAddress!3!Postcode!element], NULL AS [PostalAddress!3!Country!element], NULL AS [ResidentAddress!4], NULL AS [ResidentAddress!4!Street!element], NULL AS [ResidentAddress!4!Suburb!element], NULL AS [ResidentAddress!4!State!element], NULL AS [ResidentAddress!4!Postcode!element], NULL AS [ResidentAddress!4!Country!element], NULL AS [User!2!PhoneNumber!element], NULL AS [User!2!MobileNumber!element], NULL AS [User!2!EmailAddress!element] UNION ALL SELECT 2 AS Tag, 1 AS Parent, NULL, Users.userID, Users.username, Users.password, Users.firstName, Users.middleName, Users.lastName, Users.dob, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Users.phoneNumber, Users.mobileNumber, Users.emailAddress FROM Users WHERE Users.userID=@userID UNION ALL SELECT 3 AS Tag, 2 AS Parent, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Users.postalStreet, Users.postalSuburb, Users.postalState, Users.postalPostcode, Users.postalCountry, NULL, Users.residentStreet, Users.residentSuburb, Users.residentState, Users.residentPostcode, Users.residentCountry, NULL, NULL, NULL FROM Users WHERE Users.userID=@userID FOR XML EXPLICIT John [quoted text, click to view] "Timothy V" <tripix@msn.com> wrote in message news:uoZFBFPZEHA.2840@TK2MSFTNGP11.phx.gbl... > Hi again, > I got it to work.... well, sort of. When I run it it comes up with the > message: "FOR XML EXPLICIT query contains the invalid column name ''. Use > the TAGNAME!TAGID!ATTRIBUTENAME[!..] format where TAGID is a positive > integer." > > I've pasted it bellow. Thank you once again! > > Tim. > > CREATE PROCEDURE dbo.FindUser > ( > @userID INT > ) > AS > SELECT > 1 AS Tag, > NULL AS Parent, > NULL AS [Users!1], > NULL AS [User!2!userID], > NULL AS [User!2!Username!element], > NULL AS [User!2!Password!element], > NULL AS [User!2!FirstName!element], > NULL AS [User!2!MiddleName!element], > NULL AS [User!2!LastName!element], > NULL AS [User!2!dob], > NULL AS [PostalAddress!3], > NULL, > NULL, > NULL, > NULL, > NULL, > NULL AS [ResidentAddress!3], > NULL, > NULL, > NULL, > NULL, > NULL, > NULL AS [User!2!PhoneNumber!element], > NULL AS [User!2!MobileNumber!element], > NULL AS [User!2!EmailAddress!element] > UNION ALL > SELECT > 2 AS Tag, > 1 AS Parent, > NULL, > Users.userID, > Users.username, > Users.password, > Users.firstName, > Users.middleName, > Users.lastName, > Users.dob, > NULL, > NULL AS [PostalAddress!3!Street!element], > NULL AS [PostalAddress!3!Suburb!element], > NULL AS [PostalAddress!3!State!element], > NULL AS [PostalAddress!3!Postcode!element], > NULL AS [PostalAddress!3!Country!element], > NULL, > NULL AS [ResidentAddress!3!Street!element], > NULL AS [ResidentAddress!3!Suburb!element], > NULL AS [ResidentAddress!3!State!element], > NULL AS [ResidentAddress!3!Postcode!element], > NULL AS [ResidentAddress!3!Country!element], > Users.phoneNumber, > Users.mobileNumber, > Users.emailAddress > FROM Users > WHERE Users.userID=@userID > UNION ALL > SELECT > 3 AS Tag, > 2 AS Parent, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > Users.postalStreet, > Users.postalSuburb, > Users.postalState, > Users.postalPostcode, > Users.postalCountry, > NULL, > Users.residentStreet, > Users.residentSuburb, > Users.residentState, > Users.residentPostcode, > Users.residentCountry, > NULL, > NULL, > NULL > FROM Users > WHERE Users.userID=@userID > FOR XML EXPLICIT > >
Hi again, I got it to work.... well, sort of. When I run it it comes up with the message: "FOR XML EXPLICIT query contains the invalid column name ''. Use the TAGNAME!TAGID!ATTRIBUTENAME[!..] format where TAGID is a positive integer." I've pasted it bellow. Thank you once again! Tim. CREATE PROCEDURE dbo.FindUser ( @userID INT ) AS SELECT 1 AS Tag, NULL AS Parent, NULL AS [Users!1], NULL AS [User!2!userID], NULL AS [User!2!Username!element], NULL AS [User!2!Password!element], NULL AS [User!2!FirstName!element], NULL AS [User!2!MiddleName!element], NULL AS [User!2!LastName!element], NULL AS [User!2!dob], NULL AS [PostalAddress!3], NULL, NULL, NULL, NULL, NULL, NULL AS [ResidentAddress!3], NULL, NULL, NULL, NULL, NULL, NULL AS [User!2!PhoneNumber!element], NULL AS [User!2!MobileNumber!element], NULL AS [User!2!EmailAddress!element] UNION ALL SELECT 2 AS Tag, 1 AS Parent, NULL, Users.userID, Users.username, Users.password, Users.firstName, Users.middleName, Users.lastName, Users.dob, NULL, NULL AS [PostalAddress!3!Street!element], NULL AS [PostalAddress!3!Suburb!element], NULL AS [PostalAddress!3!State!element], NULL AS [PostalAddress!3!Postcode!element], NULL AS [PostalAddress!3!Country!element], NULL, NULL AS [ResidentAddress!3!Street!element], NULL AS [ResidentAddress!3!Suburb!element], NULL AS [ResidentAddress!3!State!element], NULL AS [ResidentAddress!3!Postcode!element], NULL AS [ResidentAddress!3!Country!element], Users.phoneNumber, Users.mobileNumber, Users.emailAddress FROM Users WHERE Users.userID=@userID UNION ALL SELECT 3 AS Tag, 2 AS Parent, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Users.postalStreet, Users.postalSuburb, Users.postalState, Users.postalPostcode, Users.postalCountry, NULL, Users.residentStreet, Users.residentSuburb, Users.residentState, Users.residentPostcode, Users.residentCountry, NULL, NULL, NULL FROM Users WHERE Users.userID=@userID FOR XML EXPLICIT
Thank you, i should have worked that out for myself. Stupid me. Thank you again. [quoted text, click to view] "John Bell" <jbellnewsposts@hotmail.com> wrote in message news:eOQJIgSZEHA.1356@TK2MSFTNGP09.phx.gbl... > Hi > > This will work: > > CREATE PROCEDURE dbo.FindUser > ( > @userID INT > ) > AS > SELECT > 1 AS Tag, > NULL AS Parent, > NULL AS [Users!1], > NULL AS [User!2!userID], > NULL AS [User!2!Username!element], > NULL AS [User!2!Password!element], > NULL AS [User!2!FirstName!element], > NULL AS [User!2!MiddleName!element], > NULL AS [User!2!LastName!element], > NULL AS [User!2!dob], > NULL AS [PostalAddress!3], > NULL AS [PostalAddress!3!Street!element], > NULL AS [PostalAddress!3!Suburb!element], > NULL AS [PostalAddress!3!State!element], > NULL AS [PostalAddress!3!Postcode!element], > NULL AS [PostalAddress!3!Country!element], > NULL AS [ResidentAddress!4], > NULL AS [ResidentAddress!4!Street!element], > NULL AS [ResidentAddress!4!Suburb!element], > NULL AS [ResidentAddress!4!State!element], > NULL AS [ResidentAddress!4!Postcode!element], > NULL AS [ResidentAddress!4!Country!element], > NULL AS [User!2!PhoneNumber!element], > NULL AS [User!2!MobileNumber!element], > NULL AS [User!2!EmailAddress!element] > UNION ALL > SELECT > 2 AS Tag, > 1 AS Parent, > NULL, > Users.userID, > Users.username, > Users.password, > Users.firstName, > Users.middleName, > Users.lastName, > Users.dob, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > Users.phoneNumber, > Users.mobileNumber, > Users.emailAddress > FROM Users > WHERE Users.userID=@userID > UNION ALL > SELECT > 3 AS Tag, > 2 AS Parent, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > NULL, > Users.postalStreet, > Users.postalSuburb, > Users.postalState, > Users.postalPostcode, > Users.postalCountry, > NULL, > Users.residentStreet, > Users.residentSuburb, > Users.residentState, > Users.residentPostcode, > Users.residentCountry, > NULL, > NULL, > NULL > FROM Users > WHERE Users.userID=@userID > FOR XML EXPLICIT > > John > > "Timothy V" <tripix@msn.com> wrote in message > news:uoZFBFPZEHA.2840@TK2MSFTNGP11.phx.gbl... >> Hi again, >> I got it to work.... well, sort of. When I run it it comes up with the >> message: "FOR XML EXPLICIT query contains the invalid column name ''. Use >> the TAGNAME!TAGID!ATTRIBUTENAME[!..] format where TAGID is a positive >> integer." >> >> I've pasted it bellow. Thank you once again! >> >> Tim. >> >> CREATE PROCEDURE dbo.FindUser >> ( >> @userID INT >> ) >> AS >> SELECT >> 1 AS Tag, >> NULL AS Parent, >> NULL AS [Users!1], >> NULL AS [User!2!userID], >> NULL AS [User!2!Username!element], >> NULL AS [User!2!Password!element], >> NULL AS [User!2!FirstName!element], >> NULL AS [User!2!MiddleName!element], >> NULL AS [User!2!LastName!element], >> NULL AS [User!2!dob], >> NULL AS [PostalAddress!3], >> NULL, >> NULL, >> NULL, >> NULL, >> NULL, >> NULL AS [ResidentAddress!3], >> NULL, >> NULL, >> NULL, >> NULL, >> NULL, >> NULL AS [User!2!PhoneNumber!element], >> NULL AS [User!2!MobileNumber!element], >> NULL AS [User!2!EmailAddress!element] >> UNION ALL >> SELECT >> 2 AS Tag, >> 1 AS Parent, >> NULL, >> Users.userID, >> Users.username, >> Users.password, >> Users.firstName, >> Users.middleName, >> Users.lastName, >> Users.dob, >> NULL, >> NULL AS [PostalAddress!3!Street!element], >> NULL AS [PostalAddress!3!Suburb!element], >> NULL AS [PostalAddress!3!State!element], >> NULL AS [PostalAddress!3!Postcode!element], >> NULL AS [PostalAddress!3!Country!element], >> NULL, >> NULL AS [ResidentAddress!3!Street!element], >> NULL AS [ResidentAddress!3!Suburb!element], >> NULL AS [ResidentAddress!3!State!element], >> NULL AS [ResidentAddress!3!Postcode!element], >> NULL AS [ResidentAddress!3!Country!element], >> Users.phoneNumber, >> Users.mobileNumber, >> Users.emailAddress >> FROM Users >> WHERE Users.userID=@userID >> UNION ALL >> SELECT >> 3 AS Tag, >> 2 AS Parent, >> NULL, >> NULL, >> NULL, >> NULL, >> NULL, >> NULL, >> NULL, >> NULL, >> NULL, >> Users.postalStreet, >> Users.postalSuburb, >> Users.postalState, >> Users.postalPostcode, >> Users.postalCountry, >> NULL, >> Users.residentStreet, >> Users.residentSuburb, >> Users.residentState, >> Users.residentPostcode, >> Users.residentCountry, >> NULL, >> NULL, >> NULL >> FROM Users >> WHERE Users.userID=@userID >> FOR XML EXPLICIT >> >> > >
Don't see what you're looking for? Try a search.
|