USEFUL SITES :
Write for Us
Error Message: Msg 9501, Level 16, State 2, Line 4 XQuery: Unable to resolve sql:variable('%.*ls'). The variable must be declared as a scalar TSQL variable.
Severity level: 16.
Description: This error message appears when in an XQuery a variable cannot be resolved to a valid TSQL variable.
Consequences: The T-SQL statement can be parsed, but causes the error at runtime.
Resolution: Errors of the Severity level 16 are generated by the user and are corrigible by the user. The statement cannot be run this way. A sql:variable in a XQuery must be resolvable to a valid TSQL variable.
Versions: This error message was introduced with SQL Server 2005.
Example(s): DECLARE @xml xml; SET @xml = '';
SELECT @xml.query( N' /foo[position()=sql:variable("@index")] ')
Remarks: In the above example we try to use the XQuery sql:variable @index. However this variable is not declared on the TSQL level. This raises the error.