簡體   English   中英

使用 Visual Basic 將一行數據添加到 SQL Server 數據庫時生成唯一 ID

[英]Generate unique ID when adding a row of data to SQL Server database using Visual Basic

我目前正在為我未來的業務編寫庫存程序。 我已經可以添加、刪除、更新我的服務器了。

我的問題是,當我嘗試將日期添加到我的表時,我想設置一個唯一的 ID,如“ID-0012”或類似的東西。 目前我只得到 ID = 1,2,3,4 ...

我的表由 ID、名稱、描述、價格、日期組成。 我目前正在通過谷歌搜索答案,我發現我需要在 SQL Server 中對此進行編碼。 我嘗試使用 uniqueidentifier 但我收到操作類型沖突的錯誤。

最好的解決方案是使用

  • 一個ID INT IDENTITY(1,1)列,用於讓 SQL Server 處理數值的自動遞增
  • 一個計算的、持久的列,用於將該數值轉換為您需要的值

所以試試這個:

CREATE TABLE dbo.Inventory
  (ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
   InventoryId AS 'ID-' + RIGHT('00000' + CAST(ID AS VARCHAR(5)), 5) PERSISTED,
   .... your other columns here....
  )

現在,每次在dbo.Inventory插入一行而不指定IDInventoryId值時:

INSERT INTO dbo.Inventory (Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)

那么 SQL Server 將自動且安全地增加您的ID值,並且InventoryId將包含諸如ID-00001ID-00002 、......等值 - 自動、安全、可靠、無重復。

你可以按照這一步。

對於表創建

CREATE TABLE Inventory
  (ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
   InventoryId Varchar(7),
   .... your other columns here....
  )

對於插入查詢

INSERT INTO Inventory (Col1, Col2, ..., ColN)
VALUES ('ID-'+ right('0000'+CONVERT(varchar(7), (cast(right((select isnull(InventoryId,0)  from Inventory where ID=(select max(ID) Form Inventory)),4) as int)+1)),4), Val2, ....., ValN)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM