[英]Error Creating Database Diagram in SSMS 2012
當我嘗試創建數據庫圖表時,出現以下錯誤:
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) 兼容級別
@@Version 是 Microsoft SQL Server 2012 - 11.0.5343.0 (X64)
您的問題是創建表時的 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...,)
該列也可能是一個縮進列,在這種情況下,您無法控制可以插入到表中的內容。
轉到系統表並查找 systemdiagrams 表,然后將字段 diagram_id 的“indentity Specification”屬性設置為 YES
希望這會幫助你,這個腳本解決了我的問題
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.