No column was specified for column %d of '%.*ls'.

Error Message:
Msg 8155, Level 16, State 2, Line 2
No column was specified for column %d of ‘%.*ls’.

Severity level:
16.

Description:
This error message appears when a column of a derived table cannot be assigned a unique column name.

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 executed this way. You must specify (either explicitly or implicitly) a column name of each column of a derived table.

Versions:
All versions of SQL Server.

Example(s):
USE Northwind
SELECT *
  FROM
   (SELECT CustomerID, MAX(OrderDate)
      FROM dbo.Orders
     GROUP BY CustomerID) x

Remarks:
In the above example we try to derive a table. Because we use the MAX() aggregate function on the column OrderDate, SQL Server cannot implicitly assign a name to that column. And because we haven’t explicitly specified a column alias name, the error is raised.

]]>

Leave a comment

Your email address will not be published.