Sql server 如何在没有自动递增的情况下使两列的主键安全?
我有一个名为Sql server 如何在没有自动递增的情况下使两列的主键安全?,sql-server,primary-key,auto-increment,identity,Sql Server,Primary Key,Auto Increment,Identity,我有一个名为[Purpose]的表和另一个名为[PurposeMoviment]的表 每次编辑目的时(值, 产品、服务、截止日期等),将生成目的活动 我是否可以使用带有2个pk列(Purpose\u ID,PurposeMoviment\u ID)的PurposeMoviment,其中PurposeMoviment是由我的系统手动创建的 当我说手动创建时,是一个简单的GetLastPurposeMoviment+1。 安全吗 我这么问是因为我想展示电影的实际数量,比如1,2,3。。。使用id
[Purpose]
的表和另一个名为[PurposeMoviment]
的表
每次编辑目的时(值, 产品、服务、截止日期等)
,将生成目的活动
我是否可以使用带有2个pk列(Purpose\u ID,PurposeMoviment\u ID
)的PurposeMoviment,其中PurposeMoviment是由我的系统手动创建的
当我说手动创建时,是一个简单的GetLastPurposeMoviment+1。
安全吗
我这么问是因为我想展示电影的实际数量,比如1,2,3。。。使用identity,电影编号将为1。。。4.193.
我错在哪里
谢谢
编辑
我是大环境的新手,担心很多人同时按下按钮插入目标,导致手动增量失败
我正在使用MVC5、实体框架6和存储库模式
多谢各位如果您希望增量以另一个值(基本上是序列号)为条件,那么您必须自己控制该逻辑。身份将计数,无论组加上可以为您提供的序列孔。因此,在插入或使用特定的触发逻辑之前,您需要自己计算它。我对大环境是新手,所以我担心有两个或更多的人按下插入按钮,我的简单控件(getlast+1)失败或其他什么。你有什么建议吗?我正在网站中使用RepositoryPattern(mvc5+实体框架6)。我也在努力避免触发。感谢如果可能,只需保留identity列,然后在
从该表中选择时,只需使用行号()作为PurposeMoviment\u ID
,以生成连续的、没有间隙的值。