Gustav Brock
gustav at cactus.dk
Thu Apr 22 02:00:18 CDT 2004
Hi David > Pinnacle's SQL Server Professional, February 2002 (Volume 8, Number 2), > "Known Problems with IN/NOT IN()" So which are those known problems? Susan described one only. > This may only apply to SQL Server and not Access, but it has bit me in > the a$$ before. The use of IN and NOT IN for a value list is still ok to > use, but not for subqueries. > I too, used it many times in Access, but then again, I also used the MAX > statement through the QBE window, assuming that I was using it > correctly, only to find out as I started using QA that I had been > writing Max Statements incorrectly...but I digress...:S How is MAX used incorrectly? I've never met any problems with MAX (not that I know of). > If you get your hands on that issue, also check out "The Rogue Delete": > BEGIN TRANSACTION T1 > SELECT COUNT (*) FROM TitleAuthor > DELETE TitleAuthor WHERE au_id IN ( SELECT au_id FROM Publishers) > SELECT COUNT (*) FROM TitleAuthor > ROLLBACK T1 > This deletes all rows in the TitleAuthor table, even though there is no > au_id on the Publishers table :) I can't recognize this; it behaves very politely. The syntax doesn't work in Jet SQL, but this does: DELETE FROM TitleAuthor WHERE au_id IN (SELECT au_id FROM Publishers) and it deletes zero records if Publishers is empty. If au_id doesn't exist as a field, Access asks for it as a parameter. So this is exactly as expected. Can you provide another example? Or are you talking about another SQL engine? /gustav > Christopher Hawkins wrote: >>A known issue? No kidding. I've been using the "IN (SELECT..." >>statement for years and have never had a problem. >> >>Do you know of any MSDN or similar documentation of this issue? >> >>-Christopher-