SSMS 2012中创建数据库图时出错

问题描述 投票:3回答:2

[当我尝试创建数据库图时,出现以下错误:

Cannot insert the value NULL into column 'diagram_id', table 'MyDB.dbo.sysdiagrams'; column does 
not allow nulls. INSERT fails.
The statement has been terminated.
The 'sp_creatediagram' procedure attempted to return a status of NULL, which is not allowed. A status of
0 will be returned instead. (.Net SqlClient Data Provider)

我正在使用SSMS 2012。

数据库的兼容性级别设置为SQL Server 2012(110)

@@版本是Microsoft SQL Server 2012-11.0.5343.0(X64)

sql sql-server sql-server-2012 ssms
2个回答
2
投票

您的问题是创建表时的diagram_ID可能看起来像这样

CREATE TABLE <table_name>
( diagram_ID INT NOT NULL PRIMARY KEY,
  n...,
)

这基本上意味着由于NOT NULL条件,无法将NULL值插入该列。因此,插入语句如下:

INSERT INTO <table_name>
(Diagram_ID, n...,)
VALUES
(NULL, n...,)

由于NULL将失败,您将需要在其中添加一个值,因为(因为我将其称为整数):

INSERT INTO <table_name>
(Diagram_ID, n...,)
VALUES
(23, n...,)

该列也可能是一个标识列,在这种情况下,您无法控制可插入表中的内容。


0
投票

转到系统表并查找systemdiagrams表,然后将字段diagram_id的“ indentity Specification”属性设置为YES

© www.soinside.com 2019 - 2024. All rights reserved.