2列这是我在SQL Server 2008中查询 -更新与内部联接,更新两个表
UPDATE a
SET a.col2 = 'new',
a.col3 = 'www.google.com',
b.col1 = '10'
FROM table a
INNER JOIN table b ON a.col1 = b.col1
WHERE a.col1 = 7
崩溃,指出“无效列名b.col1。”
我该如何做这项工作?
2列这是我在SQL Server 2008中查询 -更新与内部联接,更新两个表
UPDATE a
SET a.col2 = 'new',
a.col3 = 'www.google.com',
b.col1 = '10'
FROM table a
INNER JOIN table b ON a.col1 = b.col1
WHERE a.col1 = 7
崩溃,指出“无效列名b.col1。”
我该如何做这项工作?
从更近一点看你的查询,你在UPDATE语句中有b.Col1。这是不正确
UPDATE a
SET a.col2='new',
a.col3='www.google.com',
b.col1='10'
FROM @table a INNER JOIN
@table b ON a.col1 = b.col1
WHERE a.col1=7
从UPDATE你只能在一个时间更新1台
你只能在一个时间
需要发出2个update语句
UPDATE a SET a.col2='new', a.col3='www.google.com'
FROM tablea a INNER JOIN tableb b ON a.col1 = b.col1
WHERE a.col1=7
UPDATE b SET b.col1='10'
FROM tablea a INNER JOIN tableb b ON a.col1 = b.col1
WHERE a.col1=7
更新1台
您的语句是“更新A”,并且您试图更新表B中的列。您可能想创建一个包含表A和B中的列的视图,并且您更新。您也可以为表A创建触发器 - 可能会更新表B中适当的连接列。
即使有一个视图,你一次只能更新1个基本表格..除非你添加一个触发器到视图 – SQLMenace 2010-01-27 18:08:34
要根据第二个表中另一列上的条件更新1个表中的列值,此工作适用于我:
UPDATE TableA
SET TableA.col1 = 'dummyVal'
WHERE TableA .ACCID IN (SELECT ACCID FROM TableB WHERE TableB.PRODID LIKE 'XYZ')
你不能更新表1和表B与1更新语句 – SQLMenace 2010-01-27 18:01:23
是的,我认为这就是我说的。 *从UPDATE,你一次只能更新1个表格* – 2010-01-27 18:02:31
oops ..没有看到那部分 – SQLMenace 2010-01-27 18:03:19