Массовое обновление таблицы сервера SQL с использованием XML - PullRequest
4 голосов
/ 18 июня 2010

Как я могу обновить массовые данные в SQL Server 2005, отправив данные в виде XML? я могу вставить объемные данные в таблицу, но у меня нет идеи обновить данные.

Ответы [ 5 ]

2 голосов
/ 18 июня 2010
Insert into #TempTable
//Basically do bulk insert into temp table then...


Update MyTable
  Set Field1 = tt.Field1,
      Field2 = tt.Field2,
      ...
FROM #TempTable tt
where primaryKey = tt.PrimaryKey

Обратите внимание, что это добрый код suedo.поэтому замените fieldx именами полей и primaryCey замените именем поля primarykey или именем поля уникального идентификатора для таблицы.

1 голос
/ 18 июня 2010

SQL Server 2005 и выше имеет встроенную поддержку типов данных XML, а также поддерживает язык XQuery для разделения XML на столбцы реляционных данных.

Ознакомьтесь с Введение в XQuery в SQL Server 2005 чтобы понять, как это работает.

0 голосов
/ 20 апреля 2012

Для обновления значений в таблице используйте

CREATE PROCEDURE UpdEmpd

    @UpdEmpd xml
AS

BEGIN

  UPDATE HumanResources.EmployeeData

  SET    Salary=3000.00

  WHERE  EmployeeID='E15'

END

Для выполнения:

Exec UpdEmpd  '<Record xmlns:xsi="http://www.w3.org/2012/xmlschema-instance">

                  <HumanResources.EmployeeData>

                         <Salary>3000.00</Salary>

                         <EmployeeID>E15</EmployeeID>

                  </HumanResources.EmployeeData>

          </Record>'
0 голосов
/ 18 июня 2010

Проверьте функцию OPENXML .Вы также хотите загрузить данные XML в таблицу переменных , чтобы вы могли легко объединять или составлять остальную часть запроса, как если бы вы использовали обычные таблицы базы данных.

0 голосов
/ 18 июня 2010

обновление требует от вас определения некоторой внешней логики.

Например, если первичный ключ входящей записи уже существует, обновите другие столбцы, в противном случае вставьте эту запись.

я мог быПредлагаем вам написать xslt для создания операторов обновления из входящего потока XML, а затем запустить этот сценарий sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...