Sql server 从另一个表插入列值:无法绑定多部分标识符
我有两个表,结构如下: 表1Sql 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
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