Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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 DML-无法在修改中使用after函数_Sql Server_Xml_Database_Database Administration_Dml - Fatal编程技术网

Sql server SQL DML-无法在修改中使用after函数

Sql server SQL DML-无法在修改中使用after函数,sql-server,xml,database,database-administration,dml,Sql Server,Xml,Database,Database Administration,Dml,我需要用一个新的xml节点更新大约1000条xml记录,xml以xml数据类型存储在一个sql表列中,因此我一直在尝试使用文档中的modify函数(特别是示例a.4) 但是,当我在我的登台环境(SqlServer 2016 SP2-CU13)上运行此操作时,我收到以下错误消息: Msg 2395,16级,状态1,第7行 XQuery[production.dbo.Organizations.Configuration.modify()]:没有函数'{http://www.w3.org/2004/

我需要用一个新的xml节点更新大约1000条xml记录,xml以xml数据类型存储在一个sql表列中,因此我一直在尝试使用文档中的modify函数(特别是示例a.4)

但是,当我在我的登台环境(SqlServer 2016 SP2-CU13)上运行此操作时,我收到以下错误消息:

Msg 2395,16级,状态1,第7行 XQuery[production.dbo.Organizations.Configuration.modify()]:没有函数'{http://www.w3.org/2004/07/xpath-functions}:在()之后

代码很简单,我只是被错误消息难住了。非常感谢您的任何帮助或见解

代码:

更新[production].[dbo].[Organizations]设置配置。修改(/OrganizationMetadata/ExamPreassessModeFromAddress)[1]后插入测试,其中ID=1

记住XML总是区分大小写的,例如:

use tempdb
go
drop table if exists organisations 
go
create table organisations(id int, configuration xml)
insert into organisations(id, configuration) values (1,'<OrganisationMetaData><ExamPrepAssessModeFromAddress></ExamPrepAssessModeFromAddress></OrganisationMetaData>')

update organisations Set configuration.modify('insert <LegalEntityName>TEST</LegalEntityName> after (/OrganisationMetaData/ExamPrepAssessModeFromAddress)[1]') where ID = 1
使用tempdb
去
删除表格(如果存在)
去
创建表组织(id int、配置xml)
在组织(id、配置)中插入值(1“”)
更新组织设置配置。修改(/OrganizationMetadata/ExamPreassessModeFromAddress)[1]之后插入测试,其中ID=1

好奇如果你尝试小写会发生什么<代码>插入。。。在…之后
use tempdb
go
drop table if exists organisations 
go
create table organisations(id int, configuration xml)
insert into organisations(id, configuration) values (1,'<OrganisationMetaData><ExamPrepAssessModeFromAddress></ExamPrepAssessModeFromAddress></OrganisationMetaData>')

update organisations Set configuration.modify('insert <LegalEntityName>TEST</LegalEntityName> after (/OrganisationMetaData/ExamPrepAssessModeFromAddress)[1]') where ID = 1