设计表时,找到公式一栏,在里面填入T_CID+left(cast(T_DATETIME as varchar))

解决方案 »

  1.   

    update uTable
    set T_id = T_cid + cast(year(T_dateTime) as int)
      

  2.   

    update uTable
    set T_id = T_cid + cast(year(T_dateTime) as varchar)如果你的T_dateTime為字符型update uTable
    set T_id = T_cid + left(T_dateTime,4)
      

  3.   

    写个存储过程吧,我假设你自动加的是四位数字:
    create proc add_num
    as 
    declare @n char(4) output
    declare @n1 varchar(20)
    set @n1='0000'
    set @n1=select max(right(t_cid,4)) as num from table_name 
    set @n=right('0000'+right(cast(@n1 as int) +1,4),4)我这里写的只是后面数字的变化,至于前缀字母你可以加上一个输入参数,
    上面的程序经过测试。
      

  4.   

    lhy18(天才笨笨):正如你所说的写存储过程。现在我有个新的状况。
    T_ID=T_datetime(4位)+自动流水号(4位)
    难点在于它的流水号须随不同月的初始状态而变
    自动流水号须初始为0001,然后再递增.如下:
    T_id      T_datetime
    02110001   20021125
    02110002   20021131
    02120001   20021205
    03010001   20030105
    关于这个存储过程怎么写,你能告诉我吗?详细代码最好。
    还有是不是我建了这个存储过程就行了。怎么执行在sqlserver2000里?
    完了,我还可以送分。
      

  5.   

    create procedure 名
    @记录值1 int
    @记录值2 int
    as
      insert 表 (T_id,T_datetime,字段1,字段2) values 
    (substring(convert(char(8),getdate(),112),3,4)+right(cast((select count(*) from 表 where DATEDIFF(month,getdate(),T_datetime)=0)+10001 as varchar),4)
    ,getdate(),@记录值1,@记录值2)