最好用触发器,如果简单的表可以这样完成create table Pr_Jc
(
id int identity, 
Pr_JcNum as right(Convert(varchar(4),year(getdate())),2) + REPLICATE('0',(4-len(CONVERT(varchar(4),id))))+CONVERT(varchar(4),id) + 'S',
Name varchar(20)
)insert into pr_jc(name) values('test')select * from pr_jc

解决方案 »

  1.   

    有个最笨的思路:select max(left(xxxx,6)) from table --得到当前数据库的最大编号然后就自己拼凑就OK了
      

  2.   

    加insert的触发器比较好,维护起来也方便
      

  3.   

    amandag(高歌) ( ) 信誉:100    Blog   加为好友 
    这样的长度是8000
    如果我只需要长度是8位呢
      

  4.   

    create table Pr_Jc
    (
    id int identity, 
    Pr_JcNum varchar(8),
    Name varchar(20)
    )CREATE TRIGGER Pr_Jc_Insert ON Pr_Jc
    FOR INSERT
    AS
    UPDATE Pr_Jc 
    SET Pr_JcNum =(SELECT right(Convert(varchar(4),year(getdate())),2) + REPLICATE('0',(4-len(CONVERT(varchar(4),i.id))))+CONVERT(varchar(4),i.id) + 'S')
    FROM Pr_Jc INNER JOIN inserted i 
    ON i.id=Pr_Jc.idinsert into pr_jc(name) values('test')select * from pr_jc