Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Запитване за xml в sql сървър 2008

Вашият примерен xml няма Pages възел. Това означава, че когато FROM клауза е изчислена, се формира кръстосано съединение между списък от нула редове и списък от един ред. Полученият продукт няма редове, така че няма нищо SELECT ed, така че нищо не е INSERT изд.

Ако всъщност искате да вмъкнете един ред в BookDetails за всеки booksdetail възел във входящия xml, трябва да направите нещо като

SELECT 
    ParamValues.PL.value('Pages[1]','int'),
    CAST(ParamValues.PLr.value('Description[1]','varchar(max)') AS text)
FROM 
    @xml.nodes('/booksdetail') as ParamValues(PL)

Тоест, раздробете входящия xml в booksdetail възли и извадете всеки от .value които искате от тези редове.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да промените размера на колона в SQL Server (T-SQL)

  2. Странирай със Sequelize.js в SQL 2008 (който не поддържа FETCH)

  3. ODBC скаларни функции за дата и час в SQL Server (T-SQL примери)

  4. Как да постигна този вид репликация?

  5. ПРОМЯНА НА БАЗА ДАННИ / ДОБАВЯНЕ НА ФАЙЛ / ПРОМЕНЛИВО ИМЕ НА ФАЙЛ?