首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在SQL Server中从SELECT更新?

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

Stack Overflow用户
提问于 2010-02-25 22:36:53
回答 37查看 4.8M关注 0票数 4K

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

代码语言:javascript
复制
INSERT INTO Table (col1, col2, col3)
SELECT col1, col2, col3 
FROM other_table 
WHERE sql = 'cool'

是否也可以使用SELECT更新表?我有一个包含这些值的临时表,并希望使用这些值更新另一个表。可能是这样的:

代码语言:javascript
复制
UPDATE Table SET col1, col2
SELECT col1, col2 
FROM other_table 
WHERE sql = 'cool'
WHERE Table.id = other_table.id
EN

回答 37

Stack Overflow用户

回答已采纳

发布于 2010-02-25 22:39:55

代码语言:javascript
复制
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'
票数 5.8K
EN

Stack Overflow用户

发布于 2011-09-09 17:40:21

在SQL Server2008(或更高版本)中,使用MERGE

代码语言:javascript
复制
MERGE INTO YourTable T
   USING other_table S 
      ON T.id = S.id
         AND S.tsql = 'cool'
WHEN MATCHED THEN
   UPDATE 
      SET col1 = S.col1, 
          col2 = S.col2;

或者:

代码语言:javascript
复制
MERGE INTO YourTable T
   USING (
          SELECT id, col1, col2 
            FROM other_table 
           WHERE tsql = 'cool'
         ) S
      ON T.id = S.id
WHEN MATCHED THEN
   UPDATE 
      SET col1 = S.col1, 
          col2 = S.col2;
票数 842
EN

Stack Overflow用户

发布于 2012-01-23 01:47:09

代码语言:javascript
复制
UPDATE YourTable 
SET Col1 = OtherTable.Col1, 
    Col2 = OtherTable.Col2 
FROM (
    SELECT ID, Col1, Col2 
    FROM other_table) AS OtherTable
WHERE 
    OtherTable.ID = YourTable.ID
票数 771
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2334712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档