首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

如何使SQL中的字符串字段实现自增 该字段设为主键

2012-05-15 
怎么使SQL中的字符串字段实现自增 该字段设为主键怎么使SQL中的字符串字段实现自增 该字段设为主键 比如01

怎么使SQL中的字符串字段实现自增 该字段设为主键
怎么使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 行)*/
[解决办法]
探讨
先以1,2,3自增,
select 的时候转换

select right('00'+'1',2)

[解决办法]
这要看lz需要多少位了,一般就用right函数进行补0

热点排行