Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将行从一个表插入到发生匹配的另一个表_Sql_Sql Server_Tsql_Bulkinsert - Fatal编程技术网

Sql 将行从一个表插入到发生匹配的另一个表

Sql 将行从一个表插入到发生匹配的另一个表,sql,sql-server,tsql,bulkinsert,Sql,Sql Server,Tsql,Bulkinsert,我有两个表生产历史记录和批量插入。我试图将测试自定义数据集列中的值从批量插入表插入到生产历史表中的自定义数据集,其中井键匹配,但我得到以下错误: 无法绑定多部分标识符“dbo.PRODUCTION\u HISTORY.WELL\u KEY” 以下是我的疑问: INSERT INTO [dbo].[PRODUCTION_HISTORY] (CUSTOM_DATASETS) SELECT Test_Custom_DataSets FROM [dbo].[BULK_INSERT] WHERE [db

我有两个表
生产历史记录
批量插入
。我试图将
测试自定义数据集
列中的值从
批量插入
表插入到
生产历史
表中的
自定义数据集
,其中
井键
匹配,但我得到以下错误:

无法绑定多部分标识符“dbo.PRODUCTION\u HISTORY.WELL\u KEY”

以下是我的疑问:

INSERT INTO [dbo].[PRODUCTION_HISTORY] (CUSTOM_DATASETS)
SELECT Test_Custom_DataSets 
FROM [dbo].[BULK_INSERT]
WHERE [dbo].[BULK_INSERT].WELL_KEY = dbo.PRODUCTION_HISTORY.WELL_KEY

任何建议都将不胜感激

非常确定,您只需要在select语句中将这两个表连接在一起

INSERT INTO [dbo].[PRODUCTION_HISTORY] (CUSTOM_DATASETS) 
SELECT Test_Custom_DataSets 
FROM [dbo].[BULK_INSERT] AS bi
JOIN dbo.PRODUCTION_HISTORY AS ph 
    ON bi.WELL_KEY = ph.WELL_KEY
我怀疑您想要的是更新,而不是插入:


在select语句中使用join。我在查询中没有看到表
dbo.PRODUCTION\u HISTORY
。因此,它执行得很好,但也更新了所有空值,直到76k行。有没有办法只更新那些密钥数据不为空的密钥?谢谢
UPDATE ph
    SET CUSTOM_DATASETS = bi.Test_Custom_DataSets
    FROM [dbo].[PRODUCTION_HISTORY] pn JOIN
         [dbo].[BULK_INSERT] bi
         ON bi.WELL_KEY = pn.WELL_KEY;