|
On Mon, 27 Aug 2007 13:33:11 -0400, Dimitri Shvorob
<dimitri.shvorob@VANDERBILT.EDU> wrote:
>.. The warning is easy to reproduce, e.g. with
>
>proc sql;
>create table test as select *
>from test;
>quit;
>
>WARNING: This CREATE TABLE statement recursively references the target
>table. A consequence of this is a possible data integrity problem.
>
>Normally, I would take a SAS warning seriously - ignoring this one, however,
>I've never really run into data integrity problems of any obvious,
>easy-to-spot kind.
My experience is the same.
>
>Can anyone offer insight, or a counter-example?
>
>Thank you.
See http://support.sas.com/techsup/unotes/SN/012/012062.html for an explanation.
I would prefer to have such apparently (but not actually) recursive
references accepted in CREATE TABLE statements. To me, that's no different than
data something;
set something;
. . .
The cited note says that such "references used in update operations, can
return incorrect results", so they *should*be disallowed in UPDATE
statements. I'm not sure about DELETE and INSERT statements.
|