LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (August 2007, week 4)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:   Mon, 27 Aug 2007 16:12:01 -0400
Reply-To:   "Howard Schreier <hs AT dc-sug DOT org>" <nospam@HOWLES.COM>
Sender:   "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:   "Howard Schreier <hs AT dc-sug DOT org>" <nospam@HOWLES.COM>
Subject:   Re: CREATE TABLE recursively references the target table

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.


Back to: Top of message | Previous page | Main SAS-L page