Привет у меня есть этот примерсохранить результат ехес sp_excutequery с помощью XPath
DECLARE
@XML1 xml,
@XPath nvarchar(200),
@EncodedXPath nvarchar(200),
@Sql nvarchar(max),
@val nvarchar(20)
SET @XML1='
<Root>
<Device>
<Inspection>
<Status>OK</Status>
</Inspection>
</Device>
</Root>'
SELECT @XML1.query('/Root[1]/Device[1]/Inspection[1]/Status[1]')
SELECT @XML1.value('/Root[1]/Device[1]/Inspection[1]/Status[1]','varchar(5)')
SET @XPath = '/Root[1]/Device[1]/Inspection[1]/Status[1]'
SET @EncodedXPath = REPLACE(@XPath, '''', '''''')
SET @Sql = N'SELECT @XML1.query(''' + @EncodedXPath + N''')'
EXEC sp_executesql @Sql, N'@XML1 xml', @XML1
SET @Sql = N'SELECT @XML1.value(''' + @EncodedXPath + N''', ''varchar(5)'')'
EXEC sp_executesql @Sql, N'@XML1 xml', @XML1
если выполнить код, приведенный выше вы получите тот же результат, но как я могу присвоить результат динамического SQL к переменной с помощью XPath? в приведенном ниже примере возвращать только результат выполнения, но я хочу, чтобы вернуть значение «OK»
EXEC @ret = sp_executesql @Sql, N'@XML1 xml', @XML1