Cannot find either column "%.*ls" or the user-defined function or aggregate "%.*ls", or the name is ambiguous.

Error Message:
Msg 4121, Level 16, State 1, Line 5
Cannot find either column “%.*ls” or the user-defined function or aggregate “%.*ls”, or the name is ambiguous.

Severity level:
16.

Description:
This error message appears when either a column or a user-defined function or aggregate can not be found of the name is ambiguous.

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 can be fixed by the SQL Server user. The statement cannot be run this way. The column must exists as well as the user-defined function / aggregate and it must be uniquely idenfiable.

Versions:
This error message was introduced with SQL Server 2005.

Example(s):
declare @index int
set @index=2

select data.query( N’
/foo[position()=sql:variable(“@index”)]
 ‘)

Remarks:
In the above example we try to the data column. Because this column is not known in the query context, the error is raised.

]]>

Leave a comment

Your email address will not be published.