【发布时间】:2023-03-22 21:40:01
【问题描述】:
我是 SQL Server 的新手,我收到此错误“无法将值 NULL 插入 'Occupied' 列,表 'DBProjectHamlet.dbo.tblGrave';列不允许空值。INSERT 失败。语句已终止。”
这是我的插入代码,后面是创建表的代码
INSERT INTO tblGrave (GraveName)
SELECT Grave
FROM tblPlotsandOccupants
IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'tblGrave' AND TABLE_SCHEMA = 'dbo')
DROP TABLE dbo.tblGrave;
GO
CREATE TABLE tblGrave
(
GraveID INT IDENTITY (1,1),
GraveName VARCHAR(MAX) NULL,
GraveTypeID INT NOT NULL,
PlotID INT NOT NULL,
Occupied BIT NOT NULL
)
我没有尝试在 Occupied 列中插入任何内容,我不知道为什么会发生这种情况或如何解决它。我只想将值插入 tblGrave (GraveName)。任何帮助都会很棒。
【问题讨论】:
-
您知道
GraveTypeID、PlotID和Occupied不能为空。为什么只在表中插入GraveName?????? -
我目前只有 GraveName 的数据,我只是尝试更改这些数据,但仍然遇到同样的错误。
-
根据你的定义,坟墓必须有一个情节和一个类型。因此,如果没有这些信息,您将无法插入。占用很容易,您可以随时分配默认值(例如:0或1)。
标签: sql sql-server-2017