SQL题目,高手进来看看.....帮帮我写完代码,谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/17 13:43:59
详细问题如下:希望您能回复我好吗?我好学......麻烦你了!谢谢

stud表(字段)

Code Name

AB001 A

AB002 B

AB0001 C

AB0002 D

AB0005 E

例如:我第一次新建记录时起始数为:(AB001)
以后每次新插记录时就要递增,第二条就是AB002,第三条是...到n条

我想自由的向stud表中插入一个成员,insert into stud (code, name)

当然我们首先肯定要找到这个表的最长的Code ,然后再插,就自定义一个这样的函数GetNextCode去找吧

当然这里首先找到AB0005后面的AB0006,AB+ 005->"5"+1->6->"0006"(注:"这里要转化字符串了")

下面是我做的,可是做不下去了?

CREATE FUNCTION getnextcode() RETURNS varchar(20)
AS BEGIN DECLARE @y varchar(20)
DECLARE @a int DECLARE @b int DECLARE @c int DECLARE @new varchar(20)
DECLARE @code varchar(20) SELECT @code = code FROM stud WHERE len(code) = (SELECT MAX(len(code)) FROM stud)

....

实在做不下了

高手帮我写完好吗?
感激不尽!
问题补充:版主还有一个问题如下:希望您能回复我好吗?我好学......麻烦你了!谢谢

stud表(字段)

Code Name

AB0

CODE字段没有设计好,自然就给自己添了无数烦恼,即使解决了数据插入的问题,其他地方在查询、使用这个表的时候也很容易遇到更多麻烦。

建议:
1、CODE字段不要用这种文本型数据,最好用自动递增的整型数据或者整型数据。
2、如果要用文本型,先根据情况设计好位数,比如AB100001为第一个,这样计算比较方便,也不会丢失位数。