• A few examples I've seen personally, (some of which have already been mentioned);

    1) Thinking that cursors are a perfectly reasonable thing. (Overheard someone say "I didn't realise cursors were bad").

    2) Not allowing auto-generating primary keys - thus, you have to generate each key value, one at a time, and can't use "INSERT INTO".

    3) Having about 20 columns of the form "{name}1", ..., "{name}20", so I had to write a lot of code to convert that into the proper set-based lay-out.

    4) Inappropriate data-types. Far too many use "varchar"s for holding single character keys.

    5) Too much use of dynamic SQL, even for common functionality, so there's far too much copy-and-paste.

    6) No documentation of db objects.

    Paul