有沒有辦法將變量傳遞給.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。它不檢查節點的存在。 –