SQL:如何让 non-unique "identity column" 具有自动 SET 行为?

SQL: How to have a non-unique "identity column", with automatic SET behaviour?

想法

因此,标题可能看起来有些含糊,但这是我想要的(在 Microsoft SQL 服务器中,最新版本),用于 ASP.NET C# 应用程序:

附加的“逻辑标识”列应具有以下属性

最后一点可能是最难实现的,所以这就是问题所在:

问题

当 INSERT 脚本未提供强制值时,如何强制(最好在数据库级别)强制值始终设置为唯一值?

想法

我考虑过的:

上下文

一个选项是为 SEQUENCE 值分配 DEFAULT 约束。不可变的要求是最大的挑战,因为 SQL 服务器不提供指定 read-only 列的声明方式,因此需要触发器实现。

下面是示例 DDL。我不知道这种技术是否会对 EF 提出挑战。

CREATE SEQUENCE SQ_Example_Sequence
    AS int START WITH 1 INCREMENT BY 1;
GO
CREATE TABLE dbo.Example(
     IdentityColumn int NOT NULL IDENTITY
        CONSTRAINT PK_Example PRIMARY KEY CLUSTERED
    ,SomeDataColumn int
    ,SequenceColumn int NOT NULL 
        CONSTRAINT DF_Example_SequenceColumn DEFAULT NEXT VALUE FOR SQ_Example_Sequence
);
GO
CREATE TRIGGER TR_Example_Update
    ON dbo.Example FOR UPDATE 
AS
IF EXISTS(SELECT 1
    FROM inserted
    JOIN deleted ON inserted.IdentityColumn = deleted.IdentityColumn
    WHERE inserted.SequenceColumn <> deleted.SequenceColumn
    )
BEGIN
    THROW 50000, 'SequenceColumn value cannot be changed', 16;
END;
GO