在SQL Server中,如何从SELECT更新?

发布时间 2023-10-17 21:22:35作者: 小满独家

内容来自 DOC[ https://q.houxu6.top/?s=在SQL Server中,如何从SELECT更新?](https://q.houxu6.top/?s=在SQL Server中,如何从SELECT更新?)

SQL Server 中,可以使用 INSERT.. SELECT 语句向表中插入行:

INSERT INTO Table (col1, col2, col3)
SELECT col1, col2, col3 
FROM other_table 
WHERE sql = 'cool'

是否也可以使用 SELECT 更新表?我有一个临时表包含这些值,想使用这些值更新另一个表。也许像这样:

UPDATE Table SET col1, col2
SELECT col1, col2 
FROM other_table 
WHERE sql = 'cool'
WHERE Table.id = other_table.id

是的,也可以使用 SELECT 更新表。上述代码片段中的 UPDATE 语句将根据 other_table 中满足条件 sql = 'cool' 的行更新 Table 表。通过指定 WHERE 子句中的条件 Table.id = other_table.id,可以确保只更新与另一个表中具有相同 id 值的行。


更新表 Table_A 中的列 col1 和 col2,将其值设置为与 Some_Table 表(别名为 Table_A)中满足条件 col3 = 'cool' 的行对应的 Other_Table 表(别名为 Table_B)中的列 col1 和 col2 的值。更新方式为使用 INNER JOIN 连接两个表,连接条件为 Table_A.id = Table_B.id。

UPDATE
    Table_A
SET
    Table_A.col1 = Table_B.col1,
    Table_A.col2 = Table_B.col2
FROM
    Some_Table AS Table_A
    INNER JOIN Other_Table AS Table_B
        ON Table_A.id = Table_B.id
WHERE
    Table_A.col3 = 'cool'