如何通過以XML格式發送數據來更新sql server 2005中的批量數據? 我可以在表格中插入批量數據,但我沒有想法更新數據。使用xml批量更新sql server表格
4
A
回答
2
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替換爲表格的主鍵字段名稱或唯一標識符字段名稱。
0
更新要求您確定一些外部邏輯。
例如,如果傳入記錄的主鍵已經存在,請更新其他列,否則插入此記錄。
我可能會建議你編寫一些xslt來從輸入的xml流中創建更新語句,然後運行該sql腳本。
+0
是啊...我需要做這樣的事情..如果主鍵存在,我需要更新它,否則我需要插入數據。我所有的是一個包含所有數據的xml。如果PK不存在,我爲該字段添加零。 – nimi 2010-06-18 15:30:56
0
查看OPENXML功能。您的映射也希望將XML數據加載到variable table中,因此您可以像在常規數據庫表格之間那樣輕鬆地加入或組合查詢的其餘部分。
1
SQL Server 2005及更高版本具有對XML數據類型的本機支持,並且還支持用於將XML分解爲關係數據列的XQuery語言。
查看Introduction to XQuery in SQL Server 2005瞭解它是如何工作的。
-1
對於更新表中的值使用
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>'
相關問題
- 1. 批量更新SQL Server C#
- 2. 批量Sql更新
- 3. 批量更新表格
- 4. 在sql server中執行批量更新
- 5. SQL Server 2005批量更新或插入
- 6. SQL Server批量更新避免光標
- 7. 批量的SQL Server循環更新20
- 8. SQL Server觸發器和批量更新
- 9. 從xml,SQL Server 2008批量導入/更新記錄
- 10. SQL Server:表變量更新
- 11. 用於批量更新的SQL Server更新觸發器
- 12. SQL Server批量更新,用戶定義的表類型
- 13. 使用XML在單個查詢中執行批量更新的SQL Server
- 14. 更新XML在SQL Server中的變量
- 15. 使用XML文件更新SQL Server列
- 16. 使用XQUERY更新SQL Server xml列?
- 17. 在SQL Server中使用XML更新
- 18. SQL DB2批量更新csv
- 19. SQL鎖定批量更新
- 20. Sql Server 2005批量XML刪除?
- 21. 從SQL Server中的XML批量插入
- 22. XML批量加載問題到SQL Server
- 23. 批量導入XML到SQL Server
- 24. SQL中的批量更新
- 25. (我的)SQL - 批量更新
- 26. 批量更新LINQ to SQL
- 27. 使用命名空間更新SQL Server 2005中的XML變量
- 28. 更新SQL Server與XML
- 29. 使用DataAdapter批量更新
- 30. 批量更新Oracle中的表格
謝謝.....我會嘗試這一點,並取回到u ..... – nimi 2010-06-18 15:29:22
我試着這和工作正常.... – nimi 2010-06-18 18:10:01