Dej*_*jan 3 sql-server database-diagrams
我正在尝试保存数据库图表,但出现错误。我怎样才能解决这个问题?
无法将值 NULL 插入列“diagram_id”、表
“SOFT.dbo.sysdiagrams”;列不允许空值。插入失败。
该语句已终止。
'sp_creatediagram' 过程试图返回 NULL 状态,这是不允许的。
将改为返回状态 0。(.Net SqlClient 数据提供程序)
Aar*_*and 15
鉴于我们没有关于您的系统如何进入此状态的背景,您在尝试创建第一个图表之前做了什么,如果您过去成功创建图表,甚至您使用的是什么版本的 SQL Server。听起来您的sysdiagrams桌子不知何故丢失IDENTITY了diagram_id列上的属性。做这个:
DROP TABLE dbo.sysdiagrams;
GO
CREATE TABLE [dbo].[sysdiagrams]
(
[name] [sysname] NOT NULL,
[principal_id] [int] NOT NULL,
[diagram_id] [int] IDENTITY(1,1) PRIMARY KEY,
[version] [int] NULL,
[definition] [varbinary](max) NULL,
CONSTRAINT [UK_principal_name] UNIQUE ([principal_id],[name])
);
GO
EXEC sys.sp_addextendedproperty
@name=N'microsoft_database_tools_support',
@value=1 ,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'sysdiagrams';
GO
Run Code Online (Sandbox Code Playgroud)
这当然会丢失您之前能够保存的所有图表。
(在执行搜索后,看到许多人建议将此列设为 0 的默认设置,这让我感到非常难过。这在您创建一个图表后非常好,但一旦您尝试创建第二个图表,就会由于多种原因而分崩离析。)
| 归档时间: |
|
| 查看次数: |
4485 次 |
| 最近记录: |