当前位置:编程学习 > C#/ASP.NET >>

求一條sql語句(自動生成編號)

自動生成編號:以ch開頭+時間(20070523)+流水號(0001)不要太復雜,最好是注解一下語句,謝謝!!!! --------------------编程问答-------------------- lz问的不明不白,根据什么条件生成 --------------------编程问答-------------------- 在數據庫中自動生成啊!!!!! --------------------编程问答-------------------- 猜一下,所谓的流水号应该是数据库中插入记录自动递增的吧
那就弄个stringbuilder 把一段段 ToString()了之后Append就可以了呗 --------------------编程问答-------------------- 啊。。。SQL语句啊。。。看错 --------------------编程问答-------------------- --获取编号 begion  楼主测试下,有问题可以改改
DECLARE @TIME DATETIME  --当前时间
DECLARE @CODE VARCHAR (14)--当前的编号
DECLARE @MONTH VARCHAR (2)--月
DECLARE @DAY VARCHAR(2)--日

DECLARE @TABLE VARCHAR(10)--查询的表名
DECLARE @ADDTIME DATETIME --表加入数据的日期字段
DECLARE @ID INT --表主键
DECLARE @CODE_ VARCHAR (14) --表里的编号字段

SET @MONTH = LTRIM(STR(MONTH(@TIME)))
IF(LEN(@MONTH) = 1)
SET @MONTH = '0' + @MONTH 

SET @DAY = LTRIM(STR(MONTH(@TIME)))
IF(LEN(@DAY) = 1)
SET @DAY = '0' + @DAY 

SET @CODE = 'ch' + LTRIM(STR(YEAR(@TIME))) + @MONTH  + @DAY
DECLARE @Q VARCHAR (21)
         --查询数据库当天有没有插入过数据
SELECT TOP 1 @Q = @CODE_ FROM @TABLE WHERE DATEDIFF(DAY , @ADDTIME , @TIME) = 0 ORDER BY @ID DESC

IF(LEN(@Q)IS NULL )
SET @CODE = @CODE + '0001'
ELSE
BEGIN
SET @Q = LTRIM(STR(CAST(SUBSTRING(@Q,10,4) AS INT) + 1))
IF(LEN(@Q) = 1)
SET @Q = '000' + CAST(@Q AS VARCHAR)
ELSE IF(LEN(@Q) = 2)
SET @Q = '00' + @Q
ELSE IF(LEN(@Q - 3)
SET @Q = '0' + @Q
SET @CODE = @CODE + @Q
END
 --获取编号 end
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,