在 SQL 服务器中将列从 NULL 更改为 NOT NULL

Changing a column from NULL to NOT NULL in SQL Server

我正在尝试将 SQL Server 2014 中的列从 NULL 更改为 NOT NULL。这是我的代码:

ALTER TABLE purchase_order_line ALTER COLUMN pol_sl_id INT NOT NULL 

但是,以下错误消息阻止我这样做:

Msg 5074, Level 16, State 1, Line 1
The index 'idx_pol_33' is dependent on column 'pol_sl_id'.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE ALTER COLUMN pol_sl_id failed because one or more objects access this column.

我可以确认此列中没有 NULL 值。谁能帮帮我?

你的错误很简单。您必须删除并重新创建索引和统计信息。

赞:

DROP STATISTICS table.statistics_name | view.statistics_name [ ,...n ]
DROP INDEX <table_name>.<index_name>