Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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 server 从另一个表插入列值:无法绑定多部分标识符_Sql Server - Fatal编程技术网

Sql server 从另一个表插入列值:无法绑定多部分标识符

Sql server 从另一个表插入列值:无法绑定多部分标识符,sql-server,Sql Server,我有两个表,结构如下: 表1 ID Temperature Channel 表2 ID Thickness prime value 我想将“value”列从表2中添加到表1中,这样table1.id=table2.id。我修改了表1,并在其中添加了列值。但当我执行以下查询时,我得到一个错误: INSERT INTO table1 (value) SELECT value FROM table2 WHERE table1.id = table2.id

我有两个表,结构如下:

表1

ID   Temperature  Channel  
表2

ID   Thickness  prime  value

我想将“value”列从表2中添加到表1中,这样table1.id=table2.id。我修改了表1,并在其中添加了列值。但当我执行以下查询时,我得到一个错误:

INSERT INTO table1 (value)
    SELECT value 
    FROM table2
    WHERE table1.id = table2.id 
我得到的错误是:

无法绑定多部分标识符“table1.id”


我应该对此代码进行哪些更改以使其成功运行?

它是使用join更新的,而不是insert(如果表1中有记录):


您需要在
FROM
条款中指定这两个表当我这样做时,我会得到以下错误:无法将值NULL插入表table1的“id”列中;列不允许空值。插入失败。在您的说明中
表1
没有列
,但您在
插入
的目标列中列出。我怀疑你更希望
更新
而不是
插入
。但既然你的问题告诉了你真正想做什么,那只是一个猜测。因此,提出问题并提供一个,即表的
CREATE TABLE
语句,
插入到带有样本数据的
语句中,并将样本数据的预期结果作为表格文本。我修改了表1并添加了列值。我在问题中提到过。@Jenna您得到的错误意味着
table2。value
有一个
NULL
,但
table1。value
不可为NULL。这并不意味着JOIN是错误的。你必须使用连接。如果要排除空值,请添加
,其中table2.value不为空
UPDATE Source
SET 
    Source.[value] = [Target].[value]
FROM table1 as Source
INNER JOIN table2 as [Target] ON Source.id = [Target].id