怎么使SQL中的字符串字段实现自增 该字段设为主键 比如
01
02
03
。。。
99
------解决方案--------------------
先以1,2,3自增,
select 的时候转换
select right('00'+'1',2)
------解决方案--------------------
既然做起来很麻烦,就要回过头想想这个要求的合理性和必要性
------解决方案--------------------
参考:
http://www.cnblogs.com/insus/archive/2011/08/21/2147645.html
------解决方案--------------------
- SQL code
--下面的代码生成长度为8的编号,编号以BH开头,其余6位为流水号。--得到新编号的函数CREATE FUNCTION f_NextBH()RETURNS char(8)ASBEGIN RETURN(SELECT 'BH'+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6) FROM tb WITH(XLOCK,PAGLOCK))ENDGO--在表中应用函数CREATE TABLE tb(BH char(8) PRIMARY KEY DEFAULT dbo.f_NextBH(),col int)--插入资料BEGIN TRAN INSERT tb(col) VALUES(1) INSERT tb(col) VALUES(2) INSERT tb(col) VALUES(3) DELETE tb WHERE col=3 INSERT tb(col) VALUES(4) INSERT tb(BH,col) VALUES(dbo.f_NextBH(),14)COMMIT TRAN--显示结果SELECT * FROM tb/*--结果BH col ---------------- ----------- BH000001 1BH000002 2BH000003 4BH000004 14--*/
------解决方案--------------------
- SQL code
参考:Id, FormatId, F1 ,F2Id序号我设了自动加一,FormatId我想他也象这样"SL000001",当Insert时就加1,FormatId我想他也能自动加一"SL000001","SL000002"...能用一条sql什么办法实现.最好不要用中间表。有什么好方法?谢谢!create table #test(id int identity,FormatId as 'SL'+right(10000000+id,6),F1 varchar(50))goinsert #test(F1) select '1'union all select '2'select * from #testdrop table #test/*id FormatId F1 ----------- -------------- -----1 SL000001 12 SL000002 2(所影响的行数为 2 行)*/
------解决方案--------------------
------解决方案--------------------
这要看lz需要多少位了,一般就用right函数进行补0