在表格中,每次添加行时都会有一个标识列递增(最低值为1)。现在,有一项新要求 - 我们需要实施软删除。如何作弊更新标识列?
所以,我的想法是基本上乘以任何软删除行-1。这确保了唯一性并清楚地描绘了主动和轻微删除的项目之间的界限。
update Things set Id = -101
where Id = 101
你知道,愚蠢的电脑不让我这样做。建议的解决办法是到:
- 备用列
- 执行更新
- 备用回柱
,对我好像问答& D.然而,我只能看到另一种方法是添加一个带有删除状态的新列。
我正在使用EF执行额外的怪癖工作,当我改变了身份的价值和存储它,该软件是非常友好的为我思考和实际上创建一个新行(增量设置既不是原始的身份也不是负面的身份)。
我应该如何解决这个问题?
您是否尝试过'SET IDENTITY_INSERT dbo.Things ON'的'UPDATE'? – stakx
@stakx不,我没有。主要是因为我不知道。现在我已经做到了,但我仍然不能 - 这可能与我在Sql Server上有关。无论如何,我们会从Entity Framework那里做到这一点,我不知道如何做到这一点(或者如果可能的话)。 –