Posted by Serge Rielau on 06/04/05 19:11
--CELKO-- wrote:
>>>The ANSI standard does not provide a place to put in an alias, and that is a serious shortcoming. <<
>
>
> The reason for that is a consistent model of alias in Standard SQL. A
> correlation names acts as if it makes a new working table, whcih wil
> disappear at the end of the statement. You would never update the base
> table if you allowed an alias in the UPDATE statement.
>
Are you sure about that? I thought the alias is just the "exposed name".
Just like CREATE ALIAS/SYNONYM does not make a copy of the table
labeling a table with a different exposed name does not (semantically)
make a copy.
What makes the copy is the SELECT (or UNION , ...) because it produces a
new "derived table". Whether it has a name or not conceptually has no
effect on its existance.
Interestingly this all falls apart on UPDATE/DELETE/INSERT target when
one looks at updatable views which clearly are derived tables but do
what one can reasonably expect: modify the "underlying" table.
FWIW some other DBMS support aliasing of UPDATE and DELETE targets.
(Makes obviously no sense on INSERT)
Cheers
Serge
--
Serge Rielau
DB2 SQL Compiler Development
IBM Toronto Lab
Navigation:
[Reply to this message]
|