【发布时间】:2013-03-19 18:31:19
【问题描述】:
这是我第一次使用 XML 将数据插入表中。我将前端的数据(所有 Datagridview 行)保存到 xml 文件中,并将其发送到数据库以插入表 SD_ShippingDetails.Below是用于读取 XML 数据和保存数据的查询。从查询中可以看到,我正在删除相关的 ShippingID 详细信息并再次插入。(从 SD_ShippingDetails WHERE ShippingID=@ShippingID 删除)。我们可以更新 SD_ShippingDetails 中的现有行吗通过从 XML 中获取数据。如果是,请帮助我查询。
CREATE PROCEDURE SD_Insert_ShippingDetails
@PBMXML as varchar(Max),
@ShippingID as INT
AS
BEGIn
declare @i int
exec sp_xml_preparedocument @i output,@PBMXML
DELETE FROM SD_ShippingDetails WHERE ShippingID=@ShippingID
INSERT INTO SD_ShippingDetails(ShippingID,Weight,Height,TotalBoxes,Price)
SELECT ShippingID,Weight,Height,TotalBoxes,Price FROM OPENXML(@i,'Root/ShippingBox',2)
WITH (
ShippingID int,Weight varchar(20),Height varchar(20),TotalBoxes varchar(20),Price numeric(18,2))
exec sp_xml_removedocument @i
END
谢谢。
【问题讨论】:
-
您可以将 XML 数据填充到临时/变量表中,然后使用合并插入/更新现有表。你知道怎么做吗?
-
嗨,伙计,你能帮我查询一下吗,因为我不知道这样做。
-
您需要提供一些 XML。
-
如果您使用的是 SQL 2005,则不能像其他人指出的那样使用 Merge。 :(
-
是的,它已在 sql 2008 中引入 :-(
标签: c# sql-server sql-server-2005 datagridview