c# - 如何使用 Peta Poco 将自动递增的 id 设置为另一列
问题描述
我使用 C#、SQL Server 和 PetaPoco,ID
默认情况下会自动递增。我只想知道是否可以将此自动递增的 id 设置为另一列。
我还有 2 列需要使用 ID 的确切值进行设置。是否可以在 SQLCREATE TABLE
语句中执行此操作,或者在之前或之后做一些钩子ExecuteNonQuery
?如果可能的话,我不想创建视图或触发器。
解决方案
是的,当然 -CREATE TABLE
允许您通过将关键字添加到列定义来定义哪个列将是自动增量列。IDENTITY
这适用于任何基于整数的列或类型的列DECIMAL(p, 0)
(带有0
比例 - 没有点后数字)。
例如
CREATE TABLE dbo.YourTable
(
ID INT NOT NULL,
SomeOtherColumn BIGINT IDENTITY(1,1) NOT NULL,
....
)
有关完整和完整的详细信息,请参阅MS 文档CREATE TABLE
更新:所以你有 3 个独立的第三方应用程序,它们都可以访问这个表,并且都希望找到特定的列——你可以在其中之一创建标识列。其他两个可以计算,该标识列的持久“副本” - 像这样:
CREATE TABLE dbo.YourTable
(
ID INT NOT NULL,
YourIdentityColumn BIGINT IDENTITY(1,1) NOT NULL,
....
SpecialColumnForApp2 AS YourIdentityColumn PERSISTED,
SpecialColumnForApp3 AS YourIdentityColumn PERSISTED,
....
)
推荐阅读
- android - Android Closed Alpha 版本 - 无法从 Google Play 下载版本
- python - 如何避免用线matplotlib连接两个点?
- vue.js - 在 v-for 循环中使用 v-model 的问题
- ruby-on-rails - 谷歌一键成功登录重定向到 myaccount.google.com 而不是我的网站
- r - 如何使用 R 从 Wikipedia 中提取各种表格?
- javascript - 反应原生:
.matchAll 不是函数 - python - 如何让我的代码读取特定行?
- python - 如何知道本地安装在设备中的 Torch 版本
- mysql - 垂直连接 MySQL 表,插入 NULL
- python - 如何确定两个列表在 python 中是否具有相同的属性?