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