update uTable set T_id = T_cid + cast(year(T_dateTime) as int)
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)
写个存储过程吧,我假设你自动加的是四位数字: 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)我这里写的只是后面数字的变化,至于前缀字母你可以加上一个输入参数, 上面的程序经过测试。
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)
set T_id = T_cid + cast(year(T_dateTime) as int)
set T_id = T_cid + cast(year(T_dateTime) as varchar)如果你的T_dateTime為字符型update uTable
set T_id = T_cid + left(T_dateTime,4)
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)我这里写的只是后面数字的变化,至于前缀字母你可以加上一个输入参数,
上面的程序经过测试。
T_ID=T_datetime(4位)+自动流水号(4位)
难点在于它的流水号须随不同月的初始状态而变
自动流水号须初始为0001,然后再递增.如下:
T_id T_datetime
02110001 20021125
02110002 20021131
02120001 20021205
03010001 20030105
关于这个存储过程怎么写,你能告诉我吗?详细代码最好。
还有是不是我建了这个存储过程就行了。怎么执行在sqlserver2000里?
完了,我还可以送分。
@记录值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)