我有如下表:刪除標識值
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