Personalmente, soy un fanático de la solución GUID, pero esta es una opción viable.
Muchas soluciones a este problema han evitado el GUID y han usado un buen entero antiguo. Esto es común también con las situaciones de duplicación de fusión donde muchos sitios satelitales se fusionan con un maestro y los conflictos clave deben evitarse.
Si GUID no funciona para usted, y absolutamente debe tener int, bigint o similar, siempre puede usar una columna de IDENTIDAD y tener cada tabla con un valor diferente para SEED. Esos tipos de datos tienen un rango muy amplio, y no es demasiado difícil dividir el rango en segmentos usables, especialmente si todo lo que desea son dos divisiones. Como ejemplo, basic int tiene un rango de -2^31 (-2,147,483,648) a través de 2^31 - 1 (2,147,483,647). Esto es más que suficiente para una tabla de clientes, por ejemplo.
Transact-SQL (SQL Server 2000) int, bigint, smallint, and tinyint
Ejemplo:
--Create table with a seed of 1 billion and an increment of 1
CREATE TABLE myTable
(
primaryKey int IDENTITY (1000000000, 1),
columnOne varchar(10) NOT NULL
)
¿Puede agregar por qué sería necesario, por favor? Puede haber un diseño mejor que no requiera el uso de GUID. –