kzen.dev
  • Otázky
  • Značky
  • Používatelia
Oznámenia
Odmeny
Registrácia
Po registrácii budete informovaní o odpovediach a komentároch na vaše otázky.
Prihlásiť sa
Ak už máte konto, prihláste sa a skontrolujte nové oznámenia.
Za pridané otázky, odpovede a komentáre budú udelené odmeny.
Viac na
Zdroj
Upraviť
 jamesmhaley
jamesmhaley
Question

Ako vykonať UPDATE z príkazu SELECT v serveri SQL Server?

V SQL serveri je možné vložiť do tabuľky pomocou príkazu SELECT:

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

Je možné aj aktualizovať prostredníctvom príkazu SELECT? Mám dočasnú tabuľku obsahujúcu hodnoty a chcel by som aktualizovať inú tabuľku pomocou týchto hodnôt. Možno niečo také:

UPDATE Table SET col1, col2
SELECT col1, col2 
FROM other_table 
WHERE sql = 'cool'
WHERE Table.id = other_table.id
3522 2010-02-25T14:36:53+00:00 3
 Jaymin
Jaymin
Edited question 11 október 2019 в 12:57
Programovanie
sql
sql-server
tsql
select
Popular videos
Updating a table from another table | UPDATE SELECT FROM | SQL Server
Updating a table from another table | UPDATE SELECT FROM | SQL Server
pred rokom
Update Set And Update With Select Command In Oracle/SQL
Update Set And Update With Select Command In Oracle/SQL
pred rokom
SQL Commands SELECT INSERT UPDATE DELETE on SQL Server
SQL Commands SELECT INSERT UPDATE DELETE on SQL Server
pred 3 rokmi
UPDATE from SELECT using SQL Server
UPDATE from SELECT using SQL Server
pred 6 rokmi
Microsoft SQL Server - Como crear nuestra base de datos (Select, Create, Update, Delete, Insert...)
Microsoft SQL Server - Como crear nuestra base de datos (Select, Create, Update, Delete, Insert...)
pred 4 rokmi
Configuring Linked Servers in SQL Server
Configuring Linked Servers in SQL Server
pred 2 rokmi
SQL Server Linked Servers
SQL Server Linked Servers
pred 2 rokmi
VB 2015 (SELECT - UPDATE - INSERT) Using SQL Server
VB 2015 (SELECT - UPDATE - INSERT) Using SQL Server
pred 5 rokmi
SQL Server Patching (Service Pack & Cumulative Update) on Standalone Instance
SQL Server Patching (Service Pack & Cumulative Update) on Standalone Instance
pred rokom
6#Cours SGBD1 SQL Server (requête select/delete/insert/update ) Darija
6#Cours SGBD1 SQL Server (requête select/delete/insert/update ) Darija
pred 5 rokmi
Работа с базой данных на C#. Insert, select, update и delete [MS-SQL] #1
Работа с базой данных на C#. Insert, select, update и delete [MS-SQL] #1
pred 2 rokmi
SQL Server Insert, Select, Delete y Update en una tabla
SQL Server Insert, Select, Delete y Update en una tabla
pred 8 rokmi
Oracle SELECT FOR UPDATE /عربي
Oracle SELECT FOR UPDATE /عربي
pred 5 rokmi
VB.NET Tutorial - Connect & Query a Microsoft SQL Server Database - Part 1
VB.NET Tutorial - Connect & Query a Microsoft SQL Server Database - Part 1
pred 6 rokmi
Database Level Auditing with SQL Server 2012 [HD]
Database Level Auditing with SQL Server 2012 [HD]
pred 7 rokmi
Learn how to write SQL update statement from SQL Select statement
Learn how to write SQL update statement from SQL Select statement
pred 2 rokmi
Sql Server Aula 2  - SELECT, INSERT, UPDATE, DELETE
Sql Server Aula 2 - SELECT, INSERT, UPDATE, DELETE
pred 9 rokmi
C# MS SQL Server - Insert, Select, Update, Delete
C# MS SQL Server - Insert, Select, Update, Delete
pred 7 rokmi
« Predchádzajúci
Ďalšie »
This question has 1 odpoveď in English, to read them log in to your account.
Solution / Answer
Robin Day
Robin Day
25 február 2010 в 2:39
2010-02-25T14:39:55+00:00
Viac na
Zdroj
Upraviť
#10112761
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'
 Dai
Dai
Edited answer 30 apríl 2016 в 1:26
5131
0
 quillbreaker
quillbreaker
8 september 2011 в 9:20
2011-09-08T21:20:00+00:00
Viac na
Zdroj
Upraviť
#10112763

Upravil by som Robin's vynikajúcu odpoveď na nasledujúce:

UPDATE Table
SET Table.col1 = other_table.col1,
 Table.col2 = other_table.col2
FROM
    Table
INNER JOIN other_table ON Table.id = other_table.id
WHERE
    Table.col1 != other_table.col1
OR Table.col2 != other_table.col2
OR (
    other_table.col1 IS NOT NULL
    AND Table.col1 IS NULL
)
OR (
    other_table.col2 IS NOT NULL
    AND Table.col2 IS NULL
)

Bez klauzuly WHERE ovplyvníte aj riadky, ktoré nemusia byť ovplyvnené, čo by mohlo (možno) spôsobiť prepočítanie indexov alebo spustiť spúšťače, ktoré by naozaj nemali byť spustené.

Peter Mortensen
Peter Mortensen
Edited answer 19 máj 2018 в 5:18
273
0
 SQLMenace
SQLMenace
25 február 2010 в 2:41
2010-02-25T14:41:40+00:00
Viac na
Zdroj
Upraviť
#10112762

Jeden spôsob

UPDATE t 
SET t.col1 = o.col1, 
    t.col2 = o.col2
FROM 
    other_table o 
  JOIN 
    t ON t.id = o.id
WHERE 
    o.sql = 'cool'
 shA.t
shA.t
Edited answer 20 máj 2015 в 10:12
197
0
Pridať otázku
Kategórie
Všetky
Technológia
Kultúra / Rekreácia
Život / Umenie
Veda
Profesionálne
Obchod
Používatelia
Všetky
New
Popular
1
Роман Азаров
Registered pred 3 dňami
2
Mansur Zakirov
Registered pred 6 dňami
3
Тагир Мамедов
Registered pred týždňom
4
Алексей Толманов
Registered pred týždňom
5
Valeriu Vodnicear
Registered pred 2 týždňami
CS
DA
DE
EL
ES
FR
ID
IT
JA
LV
NL
PT
SK
SL
TR
ZH
© kzen.dev 2023
Zdroj
stackoverflow.com
na základe licencie cc by-sa 3.0 s uvedením autora