sqlxml中的动态XML节点名
我正在用临时表中列的值更新XML列。我可以更新下表sqlxml中的动态XML节点名,sql,xml,sql-server-2008,Sql,Xml,Sql Server 2008,我正在用临时表中列的值更新XML列。我可以更新下表 UPDATE tbWorkflow SET xmlData.modify('insert (<FromQueueName> <CustomerID>{ sql:column("T.iVTollCustID") }</CustomerID> <Date>{ sql:variable("@Cu
UPDATE tbWorkflow
SET xmlData.modify('insert
(<FromQueueName>
<CustomerID>{ sql:column("T.iVTollCustID") }</CustomerID>
<Date>{ sql:variable("@CurrDateTime") }</Date>
</FromQueueName>)
as first into (/configuration)[1]'),
vcQueue = 'qVtoll',
dtUpdTime = GETDATE()
FROM #Trxns T
WHERE T.biWorkflowID = tbWorkflow.biWorkflowID
但是,我希望节点名在temp表中是动态的,如下所示。但它不起作用
UPDATE tbWorkflow
SET xmlData.modify('insert
(<**{ sql:column("T.vcQueue") }**>
<CustomerID>{ sql:column("T.iVTollCustID") }</CustomerID>
<Date>{ sql:variable("@CurrDateTime") }</Date>
</**{ sql:column("T.vcQueue") }**>)
as first into (/configuration)[1]'),
vcQueue = 'qVtoll',
dtUpdTime = GETDATE()
FROM #Trxns T
WHERE T.biWorkflowID = tbWorkflow.biWorkflowID
非常感谢您的帮助。我认为,您应该使用子查询选择所需的字符串,然后将其插入XML。
例如,在子查询中获取一个12315.10.2012,然后您可以简单地将其插入XML中,我找到了一个解决方法 我在temp表中添加了另一个VARCHAR列,将xml节点创建为VARCHAR,然后使用这个VARCHAR列修改了实际的xml列
UPDATE #Trxns
SET xmlVarchar = '<' + vcQueue + '>
<CustomerID>' + CONVERT(VARCHAR(10),iVTollCustID) + '</CustomerID>
<Date>' + CONVERT(VARCHAR(25), GETDATE(),22) + '</Date>' +
'</' + vcQueue + '>'
UPDATE tbWorkflow
SET xmlData.modify('insert
sql:column("xmlVarchar")
as first into (/configuration)[1]'),
vcQueue = 'qVtoll',
dtUpdTime = GETDATE()
FROM #Trxns T
WHERE T.biWorkflowID = tbWorkflow.biWorkflowID
这是什么数据库?MySQL?博士后?SQL Server?神谕DB2?他们都使用SQL,但他们做的事情都略有不同,知道这是什么具体的数据库是非常宝贵的,我们可以帮助您!请相应地更新您的标签!