sqlserver中的XML值更新
有人能帮我处理这个表格吗?我想把页面大小从25改为5000sqlserver中的XML值更新,sql,sql-server,xml,sql-server-2008-r2,sqlxml,Sql,Sql Server,Xml,Sql Server 2008 R2,Sqlxml,有人能帮我处理这个表格吗?我想把页面大小从25改为5000 Select input_xml From create_report Where report_name='test report'; 上面的查询就是这个数据 input_xml <inputdata module="Vidoes"> <schedule enabled="true"> <recurrance> <time run="21:27"/> <
Select input_xml
From create_report
Where report_name='test report';
上面的查询就是这个数据
input_xml
<inputdata module="Vidoes">
<schedule enabled="true">
<recurrance>
<time run="21:27"/>
<pattern type="Daily">
<detail>9</detail>
</pattern>
<daterange start="13/05/2013 00:00:00" end="Never"/>
</recurrance>
<disk="true" toemails="true" custompathandname="" format="PDF"/>
</schedule>
<params>
<param name="summary_detail">Enhanced</param>
<param name="reportType">VideoXML</param>
<param name="reportLabel">Todays Videos</param>
<param name="pageSize">25</param>
</params>
</inputdata>
input\u xml
9
增强
可视XML
今日视频
25
如果@data
是xml变量:
set @data.modify('
replace value of (inputdata/params/param[@name="pageSize"]/text())[1]
with 5000
')
如果要更新表,请执行以下操作:
update create_report set
input_xml.modify('
replace value of (inputdata/params/param[@name="pageSize"]/text())[1]
with 5000
')
where report_name='test report'
如果
@data
是xml变量:
set @data.modify('
replace value of (inputdata/params/param[@name="pageSize"]/text())[1]
with 5000
')
如果要更新表,请执行以下操作:
update create_report set
input_xml.modify('
replace value of (inputdata/params/param[@name="pageSize"]/text())[1]
with 5000
')
where report_name='test report'
如果
@data
是xml变量:
set @data.modify('
replace value of (inputdata/params/param[@name="pageSize"]/text())[1]
with 5000
')
如果要更新表,请执行以下操作:
update create_report set
input_xml.modify('
replace value of (inputdata/params/param[@name="pageSize"]/text())[1]
with 5000
')
where report_name='test report'
如果
@data
是xml变量:
set @data.modify('
replace value of (inputdata/params/param[@name="pageSize"]/text())[1]
with 5000
')
如果要更新表,请执行以下操作:
update create_report set
input_xml.modify('
replace value of (inputdata/params/param[@name="pageSize"]/text())[1]
with 5000
')
where report_name='test report'
值得注意的是,如果您只想将pageSize替换为25到5000,并且非常确定这不会破坏任何东西,那么将XML强制转换为nvarchar(max),而不是使用replace函数并将nvarchar(max)强制转换为XML,可以实现更快的查询
update create_report
set input_xml = cast(replace(cast(input_xml as nvarchar(max)), '<param name="pageSize">25</param>', '<param name="pageSize">5000</param>') as xml)
where report_name = 'test report'
更新创建报告
将input_xml=cast(替换(cast(input_xml作为nvarchar(max)),'25','5000')作为xml)
其中report_name=‘测试报告’
请记住,它更适合一次性更改,而不是使其成为经常使用的任务或存储过程,因为随着XML文件结构的变化,它很容易破坏某些东西,所以Roman Pekar的解决方案更安全。不过,这应该更快,所以如果时间很重要的话…值得注意的是,如果您只想将pageSize替换为25到5000,并且非常确定这不会破坏任何东西,那么将XML强制转换为nvarchar(max),而不是使用replace函数并将nvarchar(max)强制转换为XML,可以实现更快的查询
update create_report
set input_xml = cast(replace(cast(input_xml as nvarchar(max)), '<param name="pageSize">25</param>', '<param name="pageSize">5000</param>') as xml)
where report_name = 'test report'
更新创建报告
将input_xml=cast(替换(cast(input_xml作为nvarchar(max)),'25','5000')作为xml)
其中report_name=‘测试报告’
请记住,它更适合一次性更改,而不是使其成为经常使用的任务或存储过程,因为随着XML文件结构的变化,它很容易破坏某些东西,所以Roman Pekar的解决方案更安全。不过,这应该更快,所以如果时间很重要的话…值得注意的是,如果您只想将pageSize替换为25到5000,并且非常确定这不会破坏任何东西,那么将XML强制转换为nvarchar(max),而不是使用replace函数并将nvarchar(max)强制转换为XML,可以实现更快的查询
update create_report
set input_xml = cast(replace(cast(input_xml as nvarchar(max)), '<param name="pageSize">25</param>', '<param name="pageSize">5000</param>') as xml)
where report_name = 'test report'
更新创建报告
将input_xml=cast(替换(cast(input_xml作为nvarchar(max)),'25','5000')作为xml)
其中report_name=‘测试报告’
请记住,它更适合一次性更改,而不是使其成为经常使用的任务或存储过程,因为随着XML文件结构的变化,它很容易破坏某些东西,所以Roman Pekar的解决方案更安全。不过,这应该更快,所以如果时间很重要的话…值得注意的是,如果您只想将pageSize替换为25到5000,并且非常确定这不会破坏任何东西,那么将XML强制转换为nvarchar(max),而不是使用replace函数并将nvarchar(max)强制转换为XML,可以实现更快的查询
update create_report
set input_xml = cast(replace(cast(input_xml as nvarchar(max)), '<param name="pageSize">25</param>', '<param name="pageSize">5000</param>') as xml)
where report_name = 'test report'
更新创建报告
将input_xml=cast(替换(cast(input_xml作为nvarchar(max)),'25','5000')作为xml)
其中report_name=‘测试报告’
请记住,它更适合一次性更改,而不是使其成为经常使用的任务或存储过程,因为随着XML文件结构的变化,它很容易破坏某些东西,所以Roman Pekar的解决方案更安全。但是,这应该更快,所以如果时间很重要的话…这个查询会在您将xml存储到
ntext
列而不是xml
之前给我出一个错误“操作数类型冲突:xml与ntext不兼容”。这通常是一个糟糕的想法,但如果您坚持使用它,您可以将我代码的第二行从..作为xml)
更改为..作为ntext)
。我的意思是“因为”,而不是“这个查询给我这个错误”之前的“操作数类型冲突:xml与ntext不兼容”这是在您将xml存储在ntext
列之前,而不是在xml
列中。这通常是一个糟糕的想法,但如果您坚持使用它,您可以将我代码的第二行从..作为xml)
更改为..作为ntext)
。我的意思是“因为”,而不是“这个查询给我这个错误”之前的“操作数类型冲突:xml与ntext不兼容”这是在您将xml存储在ntext
列之前,而不是在xml
列中。这通常是一个糟糕的想法,但如果您坚持使用它,您可以将我代码的第二行从..作为xml)
更改为..作为ntext)
。我的意思是“因为”,而不是“这个查询给我这个错误”之前的“操作数类型冲突:xml与ntext不兼容”这是在您将xml存储在ntext
列之前,而不是在xml
列中。这通常是一个糟糕的想法,但如果您坚持使用它,您可以将我的第二行代码从..作为xml)
更改为..作为ntext)
。我的意思是“因为”,而不是“之前”