Mam problem z metodami Value() oraz Exiat(), muszę sprawdzić więcej parametrów arkusza XML jednak nie wiem jak wykorzystać parametr podawany bezpośrednio przy uruchamianiu procedury. Próbowałem:
Where (CAST(BPGateway.GridDatasourceOrdBase.GridFormatXML AS XML).exist('//UltraGridColumn [@key=sql:variable("@_Key")][sql:variable("@Field")=sql:variable("@ExistingValue")]')=1 )
jednak nie można stosować takiej składni. Jeśli ktoś ma pomysł jak rozwiązać problem proszę o pomoc.

Fragment Procedury :

ALTER procedure tmp(

			   @_Key nvarchar(250),
			   @Field nvarchar(250),
			   @ExistingValue  nvarchar(250)
) AS

If(@Field='Width')
Begin
Select SJ.StyleJob, SJ.StyleJob_Name, SJ.StyleJob_Description, CAST(BPGateway.GridDatasourceOrdBase.GridFormatXML AS 
         XML).value('(//UltraGridColumn [@Key=sql:variable("@_Key")]/@Width)[1]','nvarchar(255)') as [Existing Value]
From /** lokalizacja**/
Where (CAST(BPGateway.GridDatasourceOrdBase.GridFormatXML AS XML).exist('//UltraGridColumn [@Key=sql:variable("@_Key")]  
         [@Width=sql:variable("@ExistingValue")]')=1 )