首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在连接到已编辑sql的vb10中递增1。

在连接到已编辑sql的vb10中递增1。
EN

Stack Overflow用户
提问于 2013-03-31 12:16:25
回答 1查看 21关注 0票数 0

我想有一个学生id的最后两个数字的年份和一个字符串-001示例13-001和读取表中的最后一个值示例13-002是表中的最后一个值,它如何成为13-003当表单加载。我在表13-001上有一个值,我已经尝试过这个代码,但它给了我14而不是13-002

代码语言:javascript
复制
 Dim dr As SqlDataReader
    Dim Cmd As New SqlCommand
    con.Open()
    With Cmd
        .Connection = con
        .CommandText = "SELECT * FROM tbl_student ORDER BY Student_no DESC"
    End With
    dr = Cmd.ExecuteReader

    If dr.Read Then
        lblstudno.Text = Val(dr.Item(0)) + 1

    End If

    con.Close()

谢谢,希望你能理解

EN

回答 1

Stack Overflow用户

发布于 2013-03-31 12:25:26

代码语言:javascript
复制
INSERT INTO
    students
( student_id ) VALUES
(
    CAST( ( YEAR( GETDATE() ) % 100 ) + 1 AS varchar(2) ) + '-' + 
    CAST( 
           SELECT TOP 1
               CAST( RIGHT( student_id, 3 ) AS int ) + 1
           FROM
               students
           ORDER BY
               student_id DESC

    AS varchar(3) )
)

请注意,如果达到999名学生,则此操作将失败。除非您在表上执行某种类型的锁,否则还存在潜在的竞争条件(请参见事务隔离)。

我的帖子还说明了为什么IDENTITY键通常是一个好主意,而不是滚动你自己的(假设你想使用这个系统作为你的主键)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15726273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档