首页 >数据库 >mysql教程 >如何使用 SELECT 语句中的值更新 SQL Server 表?

如何使用 SELECT 语句中的值更新 SQL Server 表?

Patricia Arquette
Patricia Arquette原创
2025-01-25 05:16:09292浏览

How Can I Update a SQL Server Table Using Values from a SELECT Statement?

> 更新SQL Server表,并使用SELECT语句的数据

>

> SQL Server允许使用INSERT...SELECT插入行。 但是,使用SELECT>语句以最初尝试(例如,UPDATE Table SET col1, col2 SELECT col1, col2...)的方式直接更新表。 正确的方法涉及使用子征服或加入。

>

>假设您需要从临时表中更新具有值的表。 不正确的尝试可能是这样的:

<code class="language-sql">UPDATE Table SET col1, col2
SELECT col1, col2 
FROM other_table 
WHERE sql = 'cool'
WHERE Table.id = other_table.id</code>

正确的方法:

1。子查询方法:

此方法使用子量来获取更新值:

>
<code class="language-sql">UPDATE Table 
SET col1 = (SELECT col1 FROM other_table WHERE sql = 'cool' AND Table.id = other_table.id),
    col2 = (SELECT col2 FROM other_table WHERE sql = 'cool' AND Table.id = other_table.id)
WHERE EXISTS (SELECT 1 FROM other_table WHERE sql = 'cool' AND Table.id = other_table.id)</code>

EXISTS子句可确保仅在other_table中匹配条目的行发生更新

2。基于联接的方法:

此方法利用A

进行更有效的更新:> JOIN

这个
<code class="language-sql">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'</code>
>基于

>列中的行匹配JOIN>> Table_A,仅应用更新。 Table_Bsubqueries and Joins都提供了使用id>语句派生的数据更新SQL Server表的有效方法,从而增强了数据操纵灵活性和性能。

以上是如何使用 SELECT 语句中的值更新 SQL Server 表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn