我正在开发一个保存员工记录的应用程序,我希望在用户注册新员工时做一些这样的事情,员工注册编号应该在SQL中自动生成,即第一个员工的注册编号应为ISO-2016-01,第二个员工的注册编号应为ISO-2016-02等。如何在员工表中添加员工之前没有生成自动注册sql
0
A
回答
0
标识等ISO-2016-01不能自动SQL Server生成 - 具有用户注册日期时间,Id
列的名称。您必须编写一个函数,在您向表中添加任何新行之前,每次都会为您生成此ID。该功能将 -
1.检查当前年份
2.为当年生成的最后一个ID(您可能希望保留特定年份的ID的跟踪)
3.使用上述数据生成下一个ID 。
希望它有帮助!
0
可能是这样的吗?
ALTER TABLE dbo.Employes
ADD RegistrationNumber AS CONCAT('ISO-', DATEPART(year, DateReg), '-', Id);
其中DateReg
- 标识列
1
它可以在不产生额外的领域,如果RegistrationNumber总是在相同的格式(ISO-2016-XXX)
来完成,你可以得到你这样的最后一个数字:
select top 1 substring(r.RegistrationNumber, 10, len(r.RegistrationNumber))
from Registrations r
where substring (r.RegistrationNumber, 5, 4) = '2016'
order by substring(r.RegistrationNumber, 10, len(r.RegistrationNumber)) desc
假设这将永远是ISO-2016-(= 9个字符)
一个完整的SQL,您可以使用该功能将是这样的:
declare @year varchar(4) = convert(varchar, datepart(year, getdate()))
declare @prefix varchar(9) = 'ISO-' + @year + '-'
declare @number int
declare @result varchar(20)
select top 1
@number = substring(r.RegistrationNumber, 10, len(r.RegistrationNumber))
from Registrations r
where substring (r.RegistrationNumber, 5, 4) = @year
order by substring(r.RegistrationNumber, 10, len(r.RegistrationNumber)) desc
set @number = @number + 1
set @result = @prefix + convert(varchar, @number)
select @result
相关问题
- 1. 添加注册成员
- 2. 如何生成员工ID?
- 3. 仅注册Laravel的员工
- 4. SQL - 在注册类上列出成员
- 5. 营销列表成员动态CRM工作流添加/删除
- 6. 前员工
- 7. MySQL:员工没有项目和没有员工的项目
- 8. OpenERP如何将员工作为团队成员添加到项目管理中?
- 9. 在另一个成员中动态添加类成员
- 10. 如何动态地添加成员
- 11. SQL查询员工表
- 12. 自动工厂注册
- 13. 如何在WSO2治理注册表中添加自定义工件扩展(RXT)?
- 14. 查询员工表的自加入
- 15. 如何注册已在管理员中注册的模型?
- 16. 阻止添加成员cmdlet在添加新成员时调用ScriptProperty成员
- 17. 在开始活动之前加载一个活动成员
- 18. 如何比较SQL Server中的两个表为匹配的员工添加值
- 19. 有没有在xmpp中的任何节为管理员添加另一个成员作为管理员
- 20. 从程序员角度来看注册表清洁工
- 21. 添加成员不工作[列表memeber]卷曲:
- 22. 在注册事件完成之前调用服务人员安装事件
- 23. 添加成员在迭代没有在PowerShell中
- 24. odoo自动任务创建用户,同时添加员工
- 25. 没有在sql中的功能,经理和员工混淆
- 26. 生成字母数字员工ID
- 27. MySQL的有关使用员工与员工和零点加入
- 28. 如何在ASP成员中注销
- 29. Drupal使用FBOauth - 如何让Facebook注册成员不会自动被阻止
- 30. 自动在两个主表之间创建一个“链接”表(前表员工和项目表中的EmployeeProject)
为什么不只是使用为您增加的标识列?如果需要的话,你可以重新格式化它以在向用户显示时添加'ISO-XXX'前缀? – Tanner
从@Tanner继续,我假设每年的注册编号发生变化,即在2017年将会是ISO-2017-NN?另外,如果您的员工人数超过99人,这个注册号是否继续如此:ISO-2016-100? –