Anb*_*n G 1 sql sql-server sql-server-2012
考虑 SQL Server 2012 中的表
789-0000000
Run Code Online (Sandbox Code Playgroud)
上述数字将被视为 SQL Server 2012 中的字符串,但每当我更新记录时,我都需要增加到 1。
例如:
789-0000001789-0000002最后增量应该只789-做0000000
最好的解决方案是使用
ID INT IDENTITY(1,1)列让 SQL Server 处理数值的自动递增所以试试这个:
CREATE TABLE dbo.YourTable
(ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
CompanyID AS '789-' + RIGHT('000000' + CAST(ID AS VARCHAR(7)), 7) PERSISTED,
.... your other columns here....
)
Run Code Online (Sandbox Code Playgroud)
现在,每次插入一行dbo.YourTable而不为IDor指定值时CompanyID:
INSERT INTO dbo.YourTable(Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
Run Code Online (Sandbox Code Playgroud)
那么 SQL Server 将自动且安全地增加您的ID值,CompanyID并将包含诸如789-0000001、789-0000002、......等值- 自动、安全、可靠、无重复。