我正在尝试将一列数据从一个表插入另一个表。我试图插入的表称为MU.PROVIDERS。我插入的表名为Sheet1 $。 (从excel表导入)。它们共有的列称为" NPI",这是所有提供程序通用的密钥,因此我尝试基于此密钥插入。并非Sheet1 $中的每个NPI值都会将相应的RELAY_ID值放入' MU.PROVIDERS'表。 (' MU.PROVIDERS'中的NPI比Sheet1 $中的NPI更多)我的查询如下:
INSERT INTO [MU.PROVIDERS] (RELAY_ID)
SELECT h.RELAY_ID
FROM Sheet1$ as h JOIN
[MU.PROVIDERS] as i ON h.NPI = i.NPI;
我收到错误: 无法将值NULL插入列' NPI',表' MU.PROVIDERS&#39 ;;列不允许空值。 INSERT失败。
我确实将NPI列设置为' MU.PROVIDERS'的主键。表,但我没有在此列中插入任何内容,所以我不明白这个问题。
答案 0 :(得分:0)
我想你想要update
。 Insert
添加了新行。 Update
更改了列的值:
UPDATE i
SET relay_id = h.relay_id
FROM mu.Providers i JOIN
Sheet1$ h
ON h.NPI = i.NPI;
答案 1 :(得分:0)
您可能已将NPI列定义为主键。 但主键需要一个唯一值来标识行。 如果未使用INSERT语句提供值,则应将NPI列定义为IDENTITY(1,1)以自动创建新的标识值。