繁体   English   中英

使用XML批量更新SQL Server表

[英]Bulk updating an sql server table using xml

如何通过以XML格式发送数据来更新sql server 2005中的批量数据? 我能够将批量数据插入表中,但是我不知道要更新数据。

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替换为您的字段名称,并将primaryKey替换为该表的primarykey字段名称或唯一标识符字段名称。

SQL Server 2005及更高版本具有对XML数据类型的本机支持,并且还支持XQuery语言以将XML分解为关系数据列。

查看SQL Server 2005中的XQuery简介,以了解其工作原理。

更新需要您确定一些外部逻辑。

例如,如果传入记录的主键已经存在,则更新其他列,否则插入该记录。

我可能建议您编写一些xslt以从传入的xml流中创建更新语句,然后运行该sql脚本。

OPENXML函数。 您映射还希望将XML数据加载到变量表中,以便像在普通数据库表之间一样轻松地连接或组成其余的查询。

用于更新表中的值

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>'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM