SCOPE_IDENTITY 返回為當前會話和當前作用域中的任何表最後生成的標識值,當前會話和當前作用域怎麼理解啊,求大神幫忙,我在dao層寫了兩個方法,一個是添加數據另一個是返回剛添加的這條數據的ID 為什麼獲取的是空的。
當前會話一般是指當前的連接, 即你同時開兩個連接到數據庫執行兩條帶自增長ID的插入語句,其產生的標識是互不影響的。
當前作用域一般是指存儲過程(如果直接執行SQL的話這段SQL也理解成一個存儲過程)層面。 比如你在A存儲過程中執行插入產生一個ID, 然後調用B存儲過程執行插入也產生一個ID,完事從B返回到A, 在A裡調用這個函數, 返回的是A裡產生的ID 而不是B裡產生的ID, 雖然對於當前連接來說, B裡產生的ID更晚更新。