【发布时间】:2021-03-02 09:06:46
【问题描述】:
我想使用 SQL Server Manager Studio 将数据库中的所有数据导出到新数据库。
我使用了导入和导出助手(任务 -> 导出数据),但导入后我尝试保存新数据
我在尝试插入数据时由于标识列错误而出现插入错误:
com.microsoft.sqlserver.jdbc.SQLServerException:无法在“id”列中插入空值
虽然我指定在导出之前保留身份插入。
我想将数据导出到具有所有身份列约束的新数据库中。
【问题讨论】:
-
错误信息不是告诉你
SET IDENTITY_INSERT ON吗? 实际错误是什么?它是否抱怨重复键值? -
错误信息说:com.microsoft.sqlserver.jdbc.SQLServerException: Unable to insert null value in column 'id'
-
那就更清楚了。您正在尝试将
NULL插入到不接受 NULL 的字段中。这与 IDENTITY 值完全无关。也许 CSV 有脏数据。可能目标表中的某些字段不可为空 -
我从 springboot 应用程序中得到错误。该字段应该接受 NULL,因为它是带有 @GeneratedValue(strategy = GenerationType.IDENTITY) 的 ID。导出时错误来自数据库,它不导出标识列约束。
-
错误清楚地表明该字段不接受 NULL。这不受客户端应用程序的影响,也不受
IDENTITY的使用影响。该字段声明为NOT NULL。IDENTITY不是约束,它是一种生成值的方法
标签: sql-server database ssms