Je suis personnellement un fan de la solution GUID, mais voici une option viable.
De nombreuses solutions à ce problème ont évité GUID et utilisé bon vieux nombre entier. Ceci est courant également avec les situations de réplication de fusion où de nombreux sites satellites fusionnent avec un maître et les conflits de clés doivent être évités.
Si GUID ne fonctionne pas pour vous, et vous devez absolument avoir int, bigint, ou similaire, vous pouvez toujours utiliser une colonne IDENTITY et avoir chaque table avec une valeur différente pour SEED. Ces types de données ont une très large gamme, et il n'est pas trop difficile de diviser la gamme en segments utilisables, surtout si tout ce que vous voulez est deux divisions. À titre d'exemple, int basique a une gamme de -2^31 (-2 147 483 648) à 2^31 - 1 (2 147 483 647). C'est plus que suffisant pour une table client, par exemple.
Transact-SQL Reference (SQL Server 2000) int, bigint, smallint, and tinyint
Exemple:
--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
)
Pouvez-vous ajouter pourquoi cela serait nécessaire s'il vous plaît? Il pourrait y avoir une meilleure conception qui ne nécessiterait pas l'utilisation de GUID. –