• SQLServer在创建视图时能自动生成自增长的ID吗?
  • 发布于 3天前
  • 27 热度
    1 评论
我们知道SQLServer的数据表可以把某个int类型的字段设置成自增长的ID作为唯一主键,那把多个表Union成一张视图表时,创建的视图能否也生成自增长的ID列?
用户评论
  • 绝非偶然
  • ‌在SQL Server中,视图不能直接生成自增长的ID列‌。视图是一种虚拟表,它基于SQL查询的结果集,并不存储数据,因此不具备生成自增长ID列的功能。视图的作用主要是简化查询操作、提升数据可读性和安全性,而不涉及数据的物理存储和自动增长机制‌。如果你需要在查询结果中包含自增长ID列,可以通过在查询中使用窗口函数ROW_NUMBER()来实现。例如:
    CREATE VIEW [dbo].[BaseOrganization_v] AS
    SELECT ROW_NUMBER() OVER (ORDER BY pob.PropertyId ASC) AS id,
           pob.PropertyId,
           pob.PropertyName
    FROM pob;
    这段代码创建了一个视图BaseOrganization_v,其中包含了一个自增长的ID列id,该ID基于pob.PropertyId的顺序自动生成‌。
  • 2025/6/9 17:01:00 [ 0 ] [ 0 ] 回复