Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.databases.ms-sqlserver > #2092

UPDATE FROM

From Anton Shepelev <anton.txt@g{oogle}mail.com>
Newsgroups comp.databases.ms-sqlserver
Subject UPDATE FROM
Date 2021-07-19 12:14 +0300
Organization A noiseless patient Spider
Message-ID <20210719121448.6ece4302949ccaaee268158c@g{oogle}mail.com> (permalink)

Show all headers | View raw


Hello, all.  The MSSQL documentation for `UPDATE FROM' is
not very clear on how the update source should be specified
and how its rows are matched against those of the table
being updated. I think the following methods are equivalent
and correct:

   -- 1.
   UPDATE my_alias
   SET col = data_tab.col
   FROM upd_tab my_alias
   JOIN data_tab ON data_tab.code = my_alias.code

   -- 2.
   UPDATE upd_tab
   SET col = data_tab.col
   FROM upd_tab my_alias
   JOIN data_tab ON data_tab.code = my_alias.code

But in some old code that seems to have been working for
about ten years I have found an `UPDATE' with the following
structure:

   -- 3.
   UPDATE upd_tab
   SET col = data_tab.col
   FROM data_tab
   WHERE data_tab.code = my_alias.code

which, unlike the previous two commands, works non-
deterministically, although there are no more than one row
in data_tab from each row in upd_tab. Is it because the FROM
clause does not mention upd_tab, whereas it must?  If so,
how is the WHERE predicate above interpreted and how does it
affect the result?

-- 
()  ascii ribbon campaign - against html e-mail
/\  http://preview.tinyurl.com/qcy6mjc [archived]

Back to comp.databases.ms-sqlserver | Previous | NextNext in thread | Find similar


Thread

UPDATE FROM Anton Shepelev <anton.txt@g{oogle}mail.com> - 2021-07-19 12:14 +0300
  Re: UPDATE FROM Anton Shepelev <anton.txt@g{oogle}mail.com> - 2021-07-19 12:23 +0300
  Re: UPDATE FROM Anton Shepelev <anton.txt@g{oogle}mail.com> - 2021-07-19 17:21 +0300
    Re: UPDATE FROM Erland Sommarskog <esquel@sommarskog.se> - 2021-07-19 20:52 +0200
      Re: UPDATE FROM Anton Shepelev <antonius@freeshell.de> - 2021-07-20 17:12 +0300

csiph-web