Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server中使用XML进行更新_Sql Server_Xml_Sql Server 2008 - Fatal编程技术网

Sql server 在SQL Server中使用XML进行更新

Sql server 在SQL Server中使用XML进行更新,sql-server,xml,sql-server-2008,Sql Server,Xml,Sql Server 2008,我正在尝试使用xml更新表 UPDATE dbo.M_Picture SET Sequence = T.c.query('Sequence') FROM dbo.M_Picture pic INNER JOIN @xml.nodes('/pictures/picture') T(c) ON pic.PictureId = T.c.query('pictureId') --I guess issue is in this line 我使用的XML是 <pictures> <

我正在尝试使用xml更新表

UPDATE dbo.M_Picture
SET Sequence = T.c.query('Sequence')
FROM dbo.M_Picture pic
INNER JOIN @xml.nodes('/pictures/picture') T(c)
ON pic.PictureId = T.c.query('pictureId') --I guess issue is in this line
我使用的XML是

<pictures>
  <picture>
    <pictureId>30</pictureId>
    <Sequence>4</Sequence>
  </picture>
  <picture>
    <pictureId>31</pictureId>
    <Sequence>4</Sequence>
  </picture>
</pictures>
pictureId
int

如何解决这个问题?

试试这个:

UPDATE dbo.M_Picture
SET Sequence = T.c.query('Sequence')  -- this here *also* assign an XML fragment to "Sequence"
FROM dbo.M_Picture pic
INNER JOIN @xml.nodes('/pictures/picture') T(c)
ON pic.PictureId = T.c.value('(pictureId)[1]', 'int')
对XML使用
.value()
方法,该方法返回标量类型(如
int

另外:我不确定您是否真的要将XML片段
4
分配给您的列
Sequence
——或者是否也要在那里使用
.value()
方法

UPDATE dbo.M_Picture
SET Sequence = T.c.query('Sequence')  -- this here *also* assign an XML fragment to "Sequence"
FROM dbo.M_Picture pic
INNER JOIN @xml.nodes('/pictures/picture') T(c)
ON pic.PictureId = T.c.value('(pictureId)[1]', 'int')