如何使用 Petapoco 将自动增量 ID 设置为另一列
How to set auto incremented id to another column with using Peta Poco
我使用 C#、SQL 服务器和默认自动递增 ID
的 PetaPoco。我只想知道是否可以将这个自动递增的 id 设置为另一列。
我还有 2 列需要使用 ID 的确切值进行设置。是否可以在 SQL CREATE TABLE
语句中执行此操作或在 ExecuteNonQuery
之前或之后执行一些挂钩?如果可能的话,我不想创建视图或触发器。
是的,当然 - CREATE TABLE
允许您通过添加 IDENTITY
来定义 哪个 列将成为 auto-increment 列列定义的关键字。这适用于任何 integer-based 列或 DECIMAL(p, 0)
类型的列(具有 0
比例 - 没有 after-the-dot 数字)。
例如
CREATE TABLE dbo.YourTable
(
ID INT NOT NULL,
SomeOtherColumn BIGINT IDENTITY(1,1) NOT NULL,
....
)
查看 MS docs on CREATE TABLE
了解完整的详细信息
更新: 所以你有 3 个单独的 third-party 应用程序,它们都访问这个 table,并且都希望找到特定的列 - 其中一个你可以做身份列。其他两个可能是该标识列的 计算、持久化 "copies" - 像这样:
CREATE TABLE dbo.YourTable
(
ID INT NOT NULL,
YourIdentityColumn BIGINT IDENTITY(1,1) NOT NULL,
....
SpecialColumnForApp2 AS YourIdentityColumn PERSISTED,
SpecialColumnForApp3 AS YourIdentityColumn PERSISTED,
....
)
我使用 C#、SQL 服务器和默认自动递增 ID
的 PetaPoco。我只想知道是否可以将这个自动递增的 id 设置为另一列。
我还有 2 列需要使用 ID 的确切值进行设置。是否可以在 SQL CREATE TABLE
语句中执行此操作或在 ExecuteNonQuery
之前或之后执行一些挂钩?如果可能的话,我不想创建视图或触发器。
是的,当然 - CREATE TABLE
允许您通过添加 IDENTITY
来定义 哪个 列将成为 auto-increment 列列定义的关键字。这适用于任何 integer-based 列或 DECIMAL(p, 0)
类型的列(具有 0
比例 - 没有 after-the-dot 数字)。
例如
CREATE TABLE dbo.YourTable
(
ID INT NOT NULL,
SomeOtherColumn BIGINT IDENTITY(1,1) NOT NULL,
....
)
查看 MS docs on CREATE TABLE
了解完整的详细信息
更新: 所以你有 3 个单独的 third-party 应用程序,它们都访问这个 table,并且都希望找到特定的列 - 其中一个你可以做身份列。其他两个可能是该标识列的 计算、持久化 "copies" - 像这样:
CREATE TABLE dbo.YourTable
(
ID INT NOT NULL,
YourIdentityColumn BIGINT IDENTITY(1,1) NOT NULL,
....
SpecialColumnForApp2 AS YourIdentityColumn PERSISTED,
SpecialColumnForApp3 AS YourIdentityColumn PERSISTED,
....
)