在我的搜索一個方法來創建一個唯一的增量系列的數字。我考慮了身份專欄。我無法將其用於我的目的,但這導致我目前的問題;sql server中的標識列在技術上如何工作?
身份在技術上如何在Sql服務器上工作?
我不是在尋找如何使用它的答案,我知道它增加了每個插入上的數字,在刪除時留下空白。但我找不到任何文件如何產生它的數字。這是在sql服務器中的表嗎?它使用行鎖嗎?或者其他類型的鎖?它是否鎖定?它如何防止重複的數字?
在我的搜索一個方法來創建一個唯一的增量系列的數字。我考慮了身份專欄。我無法將其用於我的目的,但這導致我目前的問題;sql server中的標識列在技術上如何工作?
身份在技術上如何在Sql服務器上工作?
我不是在尋找如何使用它的答案,我知道它增加了每個插入上的數字,在刪除時留下空白。但我找不到任何文件如何產生它的數字。這是在sql服務器中的表嗎?它使用行鎖嗎?或者其他類型的鎖?它是否鎖定?它如何防止重複的數字?
有沒有在這些問題/文章的內部一些有用的信息:
http://www.sqlmag.com/article/sql-server/Sequences-Part-2-129205
他們正在談論這是在SQL 2012引入的序列,但包括身份的一些信息,差異和實現。不知道這是否完全答案,但恕我直言,值得一讀。
真的很有趣,它不回答我的問題。 – Jaco 2012-04-19 12:45:39
你想知道它是如何專門在SQL Server中實現的,或者你想要任何通用解決方案的線程安全值增量? – zerkms 2012-04-19 11:28:36
爲什麼你需要實現細節?只有實現你自己的以某種順序生成唯一值的方式?那麼你不需要知道標識列是如何工作的,使用['output'](http://msdn.microsoft.com/en-us/library/ms177564.aspx)子句進行簡單的'update'會執行。或者,對於較早的SQL Server,則是鎖定讀取與更新的組合。 – GSerg 2012-04-19 11:30:13
特定的SQL Server,只是技術上的興趣。 – Jaco 2012-04-19 12:36:28