Sql server 如何使用ado.net增加注册号?
我正在使用ado.net表单将学生值插入表中。我想自动生成注册号。 例如,“R0001” 每次它都会自动递增1Sql server 如何使用ado.net增加注册号?,sql-server,ado.net,Sql Server,Ado.net,我正在使用ado.net表单将学生值插入表中。我想自动生成注册号。 例如,“R0001” 每次它都会自动递增1 “R0001”->“R0002”->“R0003”等 “R0010”->“R0011”等 “R0100”->“R0101”等 但我无法自动生成注册号。 有人能帮我吗?我会的 一个ID INT-IDENTITY列-它由SQL Server自动递增 添加一个计算的、持久化的列 ALTER TABLE dbo.YourTable ADD RegistrationNumber AS
- “R0001”->“R0002”->“R0003”等
- “R0010”->“R0011”等
- “R0100”->“R0101”等
- 一个
列-它由SQL Server自动递增ID INT-IDENTITY
- 添加一个计算的、持久化的列
ALTER TABLE dbo.YourTable ADD RegistrationNumber AS 'R' + RIGHT('0000' + CAST(ID AS VARCHAR(4)), 4) PERSISTED
ID
列的值1、2、3、4
,以及RegistrationNumber
列的值R0001、R0002、R0003、R0004
,一个选项:
- 使用标识值,得到1、2、3、4、5等
- 在客户机代码中添加R和前导零
- 在桌子上用一根绳子
您也可以使RegistrationNumber列唯一如果您能够根据某个id/时间戳对现有字段进行排序,只需获取最新条目、删除r、递增并保存值即可
DECLARE @RegNum INT, @RegNumChar VARCHAR(5)
SET @RegNum = CAST(SUBSTRING(RegistrationNumber, 2, LEN(RegistrationNumber)) AS INT)
SET @RegNum = @RegNum + 1
SET @RegNumChar = 'R" + CONVERT(varchar(5), @RegNum)
创建表StudentID int NOT NULL IDENTITY(1,1)主键,名称varchar(20),课程varchar(20),注册号为'R'+右('0000'+强制转换(StudentID为varchar(5)),5))如何插入值?但如何在此表中插入值?@Sonu Kumar:insert(名称,课程)仅.SQL Server将管理StudentID和RegistrationNumber@Sonu库马尔:那么请接受和/或向上投票(我答案左边的勾号和向上箭头)。如果您指的是手动标识类型的操作,那么这对于并发来说是不安全的。两个进程可以很容易地获得相同的编号。下面是如何使此类手动解决方案对于并发来说是安全的:请阅读
DECLARE @RegNum INT, @RegNumChar VARCHAR(5)
SET @RegNum = CAST(SUBSTRING(RegistrationNumber, 2, LEN(RegistrationNumber)) AS INT)
SET @RegNum = @RegNum + 1
SET @RegNumChar = 'R" + CONVERT(varchar(5), @RegNum)