Avatar billede badal Nybegynder
17. februar 2005 - 22:15 Der er 6 kommentarer og
1 løsning

XML og mssql

Jeg forsøger at indsætte data fra et xml dokument i en tabel. Og det fungere fint.  Men står jeg overfor et nyt problem. Det er kun de to værdier customerID og contactname der skal indsætte fra xml mens type feltet er en konstant værdi. Hvordan indsætter jeg den kontante værdi sammen med værdierne fra xml dokument.

INSERT INTO kundetype (type, customerID, contactName)
SELECT    *
FROM      OPENXML (@idoc, '/ROOT/Customer',2)
          WITH (CustomerID  varchar(10),
                ContactName varchar(20))
Avatar billede badal Nybegynder
17. februar 2005 - 22:16 #1
den konstante værdi er:
DECLARE @Emp varchar(30)
SET @Emp = 'test' som skal indsættes i type feltet.
Avatar billede badal Nybegynder
17. februar 2005 - 22:42 #2
har vist løst den. Jeg laver en temporay tabel og indsætter værider fra xml dokumentet.
Derefter laver jeg en update så type bliver sat lig med den konstante værdie. Derefter indsætter jeg i databasen.
Avatar billede ldanielsen Nybegynder
18. februar 2005 - 09:14 #3
Hvad med:

INSERT INTO kundetype (type, customerID, contactName)
SELECT  'test', *
FROM      OPENXML (@idoc, '/ROOT/Customer',2)
          WITH (CustomerID  varchar(10),
                ContactName varchar(20))
Avatar billede badal Nybegynder
18. februar 2005 - 12:49 #4
Jeg tror godt at jeg kan bruge ovenstående løsning da den sparer mig for en led.
Hvis du kommer med et svar giver jeg point.

Hvis nu feks værdien "test" skal komme fra en input parameter. Så skal man skrive ovenstående sqlsætning om til feks?

DECLARE @sql varchar(400)
    SET @sql = 'INSERT INTO kundetype (type, customerID, contactName)
SELECT  ''' @Emp ''', *
FROM      OPENXML (@idoc, '/ROOT/Customer',2)
          WITH (CustomerID  varchar(10),
                ContactName varchar(20))'

    EXEC (@sql)
Avatar billede ldanielsen Nybegynder
21. februar 2005 - 00:42 #5
Jeg kan ikke lige se fidusen med at generere kommandoen som en streng og så EXEC den, men det ser rigtigt ud med input parametret som du har lavet det.
Avatar billede ldanielsen Nybegynder
21. februar 2005 - 00:45 #6
Så vidt jeg kan se har du problemer med anførselstegnene, men det finder du nok selv ud af, ok? :o)
Avatar billede badal Nybegynder
21. februar 2005 - 21:17 #7
ja det fik jeg klaret :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester