Я предпочитаю использовать xpath в части запроса WITH.Таким образом, вам не нужно беспокоиться о третьем параметре функции OPENXML.Следующий код работает независимо от 3-го параметра (это может быть любое значение).
declare @iDoc INT
EXEC sp_xml_preparedocument @iDoc OUTPUT, '<Ids><Id Val ="40041">11</Id><Id Val ="40042">22</Id></Ids>'
Select *
FROM OPENXML (@iDoc, '/Ids/Id',2)
WITH (Val varchar(10) '@Val',
Id int '.')
EXEC sp_xml_removedocument @iDoc