分配学生号码

l

众所周知的成员
加入
2018年11月29日
消息
52
编程经验
Beginner
大家好
我需要一点建议
我正在为学院写一个学生申请(记住这是我的第一个申请),我不确定指派学生号码的最佳路线。
自动递增最佳或随机分配数字。

我面临的额外问题是有需要被拉入的数据,我需要匹配已分配的学生编号。
我不确定什么是最简单或最佳的方法。我通常会选择自动递增,但现有的学生编号可能会导致问题。

任何建议都将非常感谢
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,544
地点
悉尼,澳大利亚
编程经验
10+
现有的学生编号是什么格式和范围?格式将确定是否需要自动递增值,或者您需要将其与其他内容组合使用,例如,您可能会生成第1号,但实际的学生编号可能是S00001。范围将确定用于自动递增ID的种子,例如,如果Larget Student号码当前是1234,那么您可以在SQL Server中创建一个身份列,并将种子设置为1235,因此将是生成的第一个数字。
 

l

众所周知的成员
加入
2018年11月29日
消息
52
编程经验
Beginner
你好
学生编号目前是stu000001。我的关注正在导入目前的数据,这些数据主要是由于被删除的记录而导致的。我可以在SQL Server中进行公式,以生成数字stu组合,但我需要将当前的学生编号保持与学生一致。
我的思维方式是做一个身份列然后导入数据,然后更改下一个身份号码(如果可能的)以匹配下一个学生编号,然后在数据库上创建一个公式以生成前进的学生编号。
它似乎长时间啰嗦,但使用未流动的学生编号导入数据增加复杂性
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,544
地点
悉尼,澳大利亚
编程经验
10+
这听起来对。您可以为数字拥有一个身份列,并且可选地,另一列具有表达式以生成字母数字字符串,或者您可能只是在应用程序代码中执行此操作。您可以在SQL Server中使用Identity_Insert允许您将数据插入标识列。不确定其他数据库中的等价物。不确定在插入数据后是否可以设置种子,甚至可以在否则需要测试。
 

l

众所周知的成员
加入
2018年11月29日
消息
52
编程经验
Beginner
你好
我收到了导入的数据,但问题我面临的问题是我需要一种生成数字的方法。
我正在考虑计算SQL中的数字以生成前面的STU的数字。我会使用主键。
问题我面临的是它回来计算所有数字并更改所有学生编号,因此我需要以编程方式进行。

我知道如何执行此操作的唯一方法是获取最新的学生ID,该学生ID是整数(身份),然后递增数字并生成学生编号。我担心的是,如果两个用户这样的瞬间除了学生编号的问题是否有问题,因为它们会有效地分配相同的数字。

希望这有意义
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,544
地点
悉尼,澳大利亚
编程经验
10+
您无需以编程方式执行任何操作。正如我之前所说的那样,你会使用两列。一个是自动生成的数字键。另一个将为学生编号设置,您可以在列属性中设置表达式,该属性将构建具有前缀的字符串,后跟来自PK列的值,如果需要,请填充。然后,您的学生编号将自动从PK值生成。
 

l

众所周知的成员
加入
2018年11月29日
消息
52
编程经验
Beginner
你好
感谢您的答复。
我尝试过,但随后它将表中的所有学生编号改变为当前的PK值,除非我缺少一个设置。我在计算列规范下放置了一个公式,持久地设置为是,
我需要学生编号保持像他们是因为所有其他数据都参考了学生编号。
我所做的是导入数据,将PK的标识值更改为最高学生编号(学生编号的流程具有差距,因此它小于PK值),然后以编程方式生成学生编号。
如果我能找到一种在将所有现有的学生编号更改为PK值的方法,我更愿意在SQL Server中进行。
我真的很感激你的帮助
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,544
地点
悉尼,澳大利亚
编程经验
10+
我尝试过,但随后它将表中的所有学生编号改变为当前的PK值,除非我缺少一个设置。

您应该根据现有的学生编号插入现有数据并在显式设置PK。这就是为什么我提到Insert_Identity:因为打开它会允许您将值直接插入标识列。在存在现有数据后,您可以允许Identity列自动生成新PKS。
 
最佳 底部