sql - 无法将值 NULL 插入列 'ExampleID'

标签 sql sql-server

执行后我不断收到错误:

Cannot insert the value NULL into column 'ExampleID', table 'DB_Example.dbo.tbl_Example'; column does not allow nulls. INSERT fails.



但是我认为不存在任何 NULL 值。我正在尝试使用以下内容简单地填充具有特定值的表:
SELECT * FROM tbl_Example
INSERT INTO tbl_Example ([Name])
VALUES ('Example1'),
('Example2'),
('Example3'), 
('Example4')

我正在使用完全相同的代码/格式来填充数据库中的 3 个其他表,并且除了这个之外,没有收到任何错误。想不通。

编辑:DBMS 是 SQL Server

最佳答案

似乎 tbl_Example有其他列(即 ExampleID )具有 NOT NULL约束定义。因此,您不能插入空值:

您还需要说明该列:

INSERT INTO tbl_Example (ExampleID, [Name])
     VALUES (?, 'Example1'), (?, 'Example2'), (?, 'Example3'), (?, 'Example4')

每当您使用 INSERT INTO table (column_list)声明 & 如果有任何列定义了 NOT NULL约束,那么您必须声明列名期望标识列,例如 primary key .

例如,您的 ExampleID列建议我作为身份列。

关于sql - 无法将值 NULL 插入列 'ExampleID',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52645536/

相关文章:

sql-server - BCP SQL Server 日期格式无效

sql - 比较sql中的逗号分隔值

mysql - sql插入并检查输入值不为空

java - 'encrypted_password' 列不能为空?

c# - 将数据从 DataTable 传输到 Access 数据库时出现 Insert INTO 错误

sql-server - Microsoft SQL Server 2005 将日期/时间转换为字符串

php - 从一个表中动态获取行并从其他表中获取值,将其求和并插入到目标表中

sql - 表拆分中的 T-SQL 日期范围并将单个日期添加到表中

mysql - 从一致的记录中获取最大值

sql - 审计存储过程是否被执行 - 在事务日志中