[點(diǎn)晴永久免費(fèi)OA]SQL Server-INSERT后返回自增長(zhǎng)ID值
insert INTO table (name) VALUES('bob'); ![]() 初初一看,貌似可以用下面這兩種方法: select MAX(id) from table; 但細(xì)細(xì)思量,這兩種方法都有問題,如果此表存在著大量并發(fā)操作時(shí),用這個(gè)方法拿到的ID大概率不是剛剛insert生成的ID,所以上面這個(gè)方法是不保險(xiǎn)的,只能用于單個(gè)人操作時(shí),多人操作的話,要用其他辦法。有多種方法可以在插入命令后獲取最后插入的 ID: @@IDENTITY:它返回在當(dāng)前會(huì)話中的連接上生成的最后一個(gè)標(biāo)識(shí)值,而不管表和產(chǎn)生該值的語句的范圍 現(xiàn)在似乎更難決定哪一個(gè)將完全符合我的要求,我最喜歡 SCOPE_IDENTITY(),使用 SCOPE_IDENTITY() 獲取新的ID值方法如下: insert INTO table (name) VALUES('bob'); 如果您在插入語句中使用 select SCOPE_IDENTITY() 和 TableName,您將獲得符合您期望的確切結(jié)果。 特別注意: 如果獲取的結(jié)果是null,說明此表沒有自增長(zhǎng)主鍵字段,上述功能生效的必要條件是表要有唯一自增長(zhǎng)主鍵字段。 該文章在 2023/6/27 18:48:42 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |