我有如下表:删除标识值
CREATE TABLE MyTable
(
ID INT NOT NULL identity(1,1),
Name NVARCHAR(50) NOT NULL
);
我需要从MyTable
两个记录删除:第一个与在MyTable
和第二之一,在过去的标识值最后一个标识值当前会话。
澄清:则必须使用IDENT_CURRENT('MyTable')
,SCOPE_IDENTITY()
也许@@IDENTITY
来完成。
请帮助你的建议。
似乎是功课。你试过了什么?为什么? –
我试过多次查询 铁: {与CTE为 (从MyTable的 选择ID其中,ID = IDENT_CURRENT(“MYTABLE”)) 从CTE删除} ,但我不明白如何在当前会话中删除最后一个值在删除id = ident_current('Mytable')后,因为@@ identity和scope_identity返回值= ident_current('Mytable') –
SCOPE_IDENTITY()和@@ IDENTITY可以为MyTable或其他表提供值。 ('@@ IDENTITY'在涉及触发器的地方尤其有趣。)如果最后一个INSERT被回滚或行被删除,'IDENT_CURRENT()'不会给你想要的值。你真的只是想删除两个最近添加的行(假设标识列没有被重新设置)吗? – HABO