Generally, int
.
bigint
if you think you'll have more rows than there are atoms in the universe.
uniqueidentifier
is useful if you need globally unique keys (keys that are guaranteed to be unique across all tables in your schema, maybe even universally unique (I don't remember))
The other two I wouldn't use they're not integral types (they have fractions, which just don't make a lot of sense as keys)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…