• That may well be true, but I've read "somewhere" (might've even be a SQL server book) that you could make something like 10million GUIDs a second before they would repeat on a PC - now that I think about it, that sounds rather remarkable, but that is the figure that I clearly remember.

    I have been using GUIDs as my primary keys in my databases for quite a while now.  I found them an advantage for much the same reason as the remote PDA scenario - in one particular application with a backend COM-based API, I could nicely create GUIDs on the client side so that each object had a unique identifier for the local caches even if they had not yet been comitted to the server.

    This gave me several advantages

    1. I could assign an ID without making a row in the server

    2. For 3rd party end users who were driving the API via script rather than my GUI it meant that they could treat editing an object in the same way as adding a new object as an ID was assigned in both cases.  I had originally tried to make an ID by writing a row to a table with an identity column and having a "saved" field - but this was very messy.

    3. Some others as well

    I found that they took a bit of getting used to, and whilst my development environment (Delphi!) has reasonable support for them, there are still some slight drawbacks to their use.

    Give them a try - disk space is cheap!