我正在尝试保存数据库图,但出现错误。我怎样才能解决这个问题?
无法将值 NULL 插入列“diagram_id”、表
“SOFT.dbo.sysdiagrams”;列不允许空值。插入失败。
该语句已终止。
“sp_creatediagram”过程试图返回 NULL 状态,这是不允许的。
将改为返回状态 0。(.Net SqlClient 数据提供者)
我正在尝试保存数据库图,但出现错误。我怎样才能解决这个问题?
无法将值 NULL 插入列“diagram_id”、表
“SOFT.dbo.sysdiagrams”;列不允许空值。插入失败。
该语句已终止。
“sp_creatediagram”过程试图返回 NULL 状态,这是不允许的。
将改为返回状态 0。(.Net SqlClient 数据提供者)
很难建议更具体的修复或建议原因,因为我们没有关于您的系统如何进入此状态的背景,您在尝试创建第一个图表之前做了什么,如果您过去成功创建图表,甚至您使用的是什么版本的 SQL Server。听起来您的
sysdiagrams
桌子以某种方式丢失了列IDENTITY
上的属性。diagram_id
做这个:这当然会丢失您之前能够保存的任何图表。
(执行搜索后,看到许多人建议将此列设置为默认值 0,这让我感到难过。创建一个图表后这很好,但一旦您尝试创建第二个图表,由于多种原因而崩溃。)
我处于类似的情况,即使我有其他几个图表也无法保存新图表。在 SSMS 中,我手动向 sysdiagram 表中添加了一个新行,其名称为我的新未保存表的名称。然后用我放在表中的名称保存我的新“Diagram_0”。SSMS 以“该名称的表已经存在,您要保存”的问题做出回应,对此回答是,工作已完成,或者更确切地说是简单地合理避免了问题。未解决的问题我可能会添加,所以我确信那里有更好的答案,只是没有时间找到它。
我遇到了同样的问题,只需按照 Aaron 的提示, 在设计模式下
dbo.sysdiagrams
打开表并将 column diagram_id 更改为“ ”即可修复它。Is Identity