我目前有一個存儲過程,我想在表中插入新行。如何在存儲過程中生成新的Guid?
insert into cars
(id, Make, Model)
values('A new Guid', "Ford", "Mustang")
所以主鍵'id'是一個Guid。我知道如何在C#代碼中創建一個新的Guid,但在存儲過程中,我不確定如何爲主鍵值生成新的Guid。
有人可以幫我嗎?
謝謝!
我目前有一個存儲過程,我想在表中插入新行。如何在存儲過程中生成新的Guid?
insert into cars
(id, Make, Model)
values('A new Guid', "Ford", "Mustang")
所以主鍵'id'是一個Guid。我知道如何在C#代碼中創建一個新的Guid,但在存儲過程中,我不確定如何爲主鍵值生成新的Guid。
有人可以幫我嗎?
謝謝!
使用SQL Server,您可以使用函數NEWID。你正在使用C#,所以我假設你正在使用SQL Server。我相信其他數據庫系統也有類似的功能。
select NEWID()
如果您使用的是Oracle,那麼您可以使用SYS_GUID()
函數。檢查出這個問題的答案:Generate a GUID in Oracle
試試這個:
SELECT NewId()
你沒有問這個在你的問題,但我認爲這是值得指出的是使用GUID的主鍵是並不總是一個好主意。雖然它很簡單,但在索引中使用GUID時會影響性能。你有沒有考慮使用一個整數值的Identity column呢?
以下是一些可能有助於閱讀的文章。
在MySQL中是UUID()。 所以查詢將是:
insert into cars
(id, Make, Model)
values(UUID(), "Ford", "Mustang")
,如果你想重用你可以做這樣的uuid:
set @id=UUID();
insert into cars
(id, Make, Model)
values(@id, "Ford", "Mustang");
select @id;
都在mysql中測試過 – 2017-01-25 15:09:01
是的,我同意你的看法。但是我正在開發一個別人開發的數據庫。所有以前的表格都使用了Guid作爲主鍵,所以我只是試圖保持一致。儘管對於新表格,我應該根據具體情況進行評估。謝謝你的信息。 – 2010-10-14 23:25:04