我正在尝试将测试表中fælge
列的所有数据移到表测试中的fælgen
列中以使用此查询
INSERT INTO [dbo].[test2] ([Fælgen])
SELECT Fælge
FROM [dbo].[test];
但我收到一个错误,它说它无法将空值插入到ET列中,而不是我试图将数据插入
列Msg 515,Level 16,State 2,Line 2
无法将值NULL插入列' ET',table' OminiData.dbo.test2&#39 ;;列不允许空值。 INSERT失败。
答案 0 :(得分:1)
当您要将数据插入表时,您需要确保传递所有约束并且没有任何违反它们。
在插入新记录时,您需要确保所有Non-Null列都具有值。实际上,如果不考虑约束并为不可归零的列提供值,则无法将值插入表中的单个列。
最后要克服这个错误,你有两个选择:
更新目标列(如果Test和Test2之间存在一对一或多关系,则需要使用基于Join的Update,否则简单的Update将是解决方案)
为ET提供非空值
INSERT INTO [dbo].[test2] ([Fælgen], [ET])
SELECT Fælge , '' as ET
FROM [dbo].[test];
答案 1 :(得分:0)
在表格上按鼠标右键,选择脚本表格为... - > INSERT 。将有一个用于插入的脚本模板。此脚本中提到的所有列都应具有由数据类型确定的值。
答案 2 :(得分:0)
我正在处理同样的错误。从此链接SQL Server: copy data from one column to another column?
中找到了此信息使用Merge我能够在两个不同的表中将数据从一列复制到另一列。 确保需要复制两列的数据类型,并确保两个表的行数。
答案 3 :(得分:-1)
您无法将值插入单个数据库列。您总是插入整行。因此,您的陈述并不意味着在此列中插入一些值。它的真正含义是向此列插入一些值,为所有其他列插入null / default值。如果其他任何列不允许空值并且没有非空默认值,则插入将失败。