ALTER TABLE DROP COLUMN failed because '%.*ls' is the only data column in table '%.*ls'. A table must have at least one data column.

Error Message:
Msg 4923, Level 16, State 1, Line 1
ALTER TABLE DROP COLUMN failed because ‘%.*ls’ is the only data column in table ‘%.*ls’. A table must have at least one data column.

Severity level:
16.

Description:
This error message appears when you try to drop a column via ALTER TABLE DROP COLUMN, however this column is the only column in the table.

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. Every table must contain at least one column. Consider dropping the whole table, if that is possible. Or add another column, before you drop this column.

Versions:
All versions of SQL Server.

Example(s):
USE tempdb;
GO
IF OBJECT_ID(‘tempdb..#t’) > 0
 DROP TABLE #t
GO
CREATE TABLE #t
(
 id INT
)
GO
ALTER TABLE #t DROP COLUMN id

Remarks:
In the above example we try to drop the column c1 of the table #t. Because c1 is the only column in #t, the error is raised.

]]>

Leave a comment

Your email address will not be published.