| 在 SQL Server 表的主键有自增Id ,和  GUID。   1.  自增Id     优点:索引空间小,索引连续。在大量数据插入的时候性能有特别大的优势。     缺点:可移植性差,在数据迁移的时候。   2. GUID     优点:数据迁移的时候很容易。     缺点:索引占用空间大,因为GUID的随机性,在插入数据的时候会导致索引上的页争用。   SQL SERVER 2005新加了 NEWSEQUENTIALID(),这是个内置函数,不能用与 SELECT   
 -- 创建的表加约束 default newsequentialid()
create table #t
(
    id uniqueidentifier not null  default newsequentialid()
    ,name varchar(100)
)
go
--插入表100条数据,并且要指定列名
insert into #t(name) values('a')
go 100
select * from #t 查询结果:        如果这个表的值要被其他表作为外键使用,获得这个值有两中方法:   1、SQL Server 2005添加的新特性 OUTPUT  
 insert into #t(name) 
output inserted.id 
values('a')   2、也可以像插入自增Id一样,获取当前最大的值,     MSDN对NEWSEQUENTIALID()解释:在指定计算机上创建大于先前通过该函数生成的任何 GUID 的 GUID。  
 insert into #t(name) values('a')
select max(id) from #t    https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2005/ms189786(v=sql.90) |