有没有办法将变量传递给.exist()
方法?下面是我在SQL Server管理运行2012原代码:将变量传递给`.exist()`方法?
CREATE TABLE #ExtractXML(xmldata xml)
insert into #ExtractXML (xmldata)
SELECT
CASE WHEN FormResults.XMLFormFields.exist('(/form/PalletItems/Items)[1]') = 0 then NULL
ELSE FormResults.XMLFormFields.query('(/form/PalletItems/Items)[1]') END
FROM FormResults
where FormTypeID = @FormTypeID
我想保存这些:'(/form/PalletItems/Items)[1]'
作为可变@XMLPath VARCHAR(100)。我以为我可以简单地插入这样的:
SELECT
CASE WHEN FormResults.XMLFormFields.exist(@XMLPath) = 0 then NULL
ELSE FormResults.XMLFormFields.query(@XMLPath) END
FROM FormResults where FormTypeID = 1
,但我得到一个错误,指出:The argument 1 of the XML data type method "exist" must be a string literal.
做任何你有什么建议?非常感谢!
感谢您的回复!但是,如果没有OPENXML,你有没有建议如何做到这一点? – user3281388
@ user3281388这不是openxml。 –
除非@Xpaths为空,否则此答案将始终返回1。它不检查节点的存在。 –