> 更新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_B
subqueries and Joins都提供了使用id
>語句派生的數據更新SQL Server表的有效方法,從而增強了數據操縱靈活性和性能。
以上是如何使用Select語句中的值更新SQL Server表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!