2

我有一个字段 ID 已设置为主键和空值,我尝试使用下面的代码将其更改为非空值,但我收到一条错误消息,指出 ALTER TABLE ALTER COLUMN ID 失败,因为一个或多个对象访问此列。我怎样才能在不丢表的情况下更改它。

ALTER TABLE [dbo].[RCHOLE]
ALTER COLUMN ID varchar(18) NOT NULL

在此处输入图像描述

4

3 回答 3

1

您收到此错误是因为 RCHOLE_Block_ID依赖于ID列,因此您必须删除依赖项才能添加 NOT Null 约束。在您的情况下,错误表明您必须删除该依赖项才能应用 NOT NULL 约束

于 2014-11-28T08:29:20.533 回答
0

Potential answer:
- The RCHOLE.ID column may be a FK in the OtherTable (on OtherTable.RCHOLE_BLOCK_ID). Try to temporary disable that FK, retry adding the not null constraint and then re-add the FK (with check).

于 2014-11-28T08:42:38.787 回答
0

我能够将 ID 字段更改为 Not Null,只需从 SSMS、选项、设计器、表和数据库设计器中转到工具并取消选中以下选项“防止保存需要重新创建表的更改”然后我执行以下脚本.

ALTER TABLE [dbo].[RCHOLE] 
ALTER COLUMN ID varchar(18) NOT NULL

在此处输入图像描述

于 2014-12-01T14:06:09.273 回答