2016-07-07 46 views

回答

0

通常你不會通過添加一列來做到這一點。您需要的是爲具有稱爲DomainID的標識字段的域添加表。然後批處理域表存儲該ID而不是域名,並且它加入域表以獲取名稱。

+0

我完全理解你的意思,我通常會這樣做,但由於當前的數據庫條件,我想通過添加一列而不是創建另一個表來解決此問題。 –

+0

然後,您唯一的選擇是通過觸發器進行維護,並確保處理競爭條件。 – HLGEM

0

要回答你的問題,可以使用NEWID()NEWSEQUENTIALID()

請注意,作爲函數,可以通過觸發器/存儲過程/查詢調用Newid,但NEWSEQUENTIALID只能設置爲uniqueidentifier類型的列的DEFAULT值。

兩者都有限制,如果發生停電事件,SEQUENTIAL ID可能被猜測或導致集羣,但是如果安全性不值該值,則可以對其進行管理。

ALTER TABLE [Schema_Name].[Table_Name] 
ADD DomainID uniqueidentifier DEFAULT (NEWSEQUENTIALID()) 

雖然它的日期,Dave Pinal之間有一個很好的解釋。

+0

添加了列數據類型 –

相關問題