Hi I writing an asp.net 2.0 application that will have multiple clients in a single database. A client will NEVER see the data of any other client and a client may have multiple users who can log in and see the clients data. My design was to have a client table whose primary key (ClientID) is a GUID of data type uniqueidentifier. Now I was going to use this ClientID in pretty much all tables within the database as this will make it easier to extract data for a single client. My proboblem arises when I want to extract the data from one database and import it into another database - perhaps as they have decided to upgrade versions of the application I am developing. Now all the other keys in the database will be your usual identity columns and duplicates will happen if I'm transfering data between databases. I was going to therefore use the ClientID as a composite key (is this a unique index in sql servrer?) but it seemed to me that this would impact greatly on performance. Should I have GUID's for all primary keys in all tables? This would probably make maintenance/ad hock querries a bit of a nightmare? Any help/thoughts on the matter would be greatly appreciated as I'm much more the programmer than the DBA, so the subtleties of sql server performance appear somewhat as a black art to me. cheers.