TI
分类   姓名     金额     收费员
数据1......
数据2......
数据3......
数据4......   结果自动生成的编号   分类     姓名     金额     收费员
001            数据1......
002            数据2......
003            数据3......
004            数据4......

解决方案 »

  1.   

    --参考
    IF OBJECT_ID('TB')IS NOT NULL DROP TABLE TB
    GO
    CREATE TABLE TB(ID INT PRIMARY KEY,[NAME] VARCHAR(10))
    INSERT TB SELECT 1,'A'
    INSERT TB SELECT 3,'B'
    INSERT TB SELECT 5,'C'
    INSERT TB SELECT 7,'D'SELECT *,自动生成的编号=right('000'+ltrim((SELECT COUNT(1) FROM TB WHERE ID<=T.ID)),3) FROM TB T 
    /*ID          NAME       自动生成的编号
    ----------- ---------- -------
    1           A          001
    3           B          002
    5           C          003
    7           D          004*/
      

  2.   

    --(4)生成流水号   
    if object_id('tb') is not null drop table tb   
    drop function dbo.FC_Next   
    create function dbo.FC_Next()   
    returns char(8)   
    as  
    begin   
         return (select 'BH'+right(1000001+isnull(right(max(BH),6),0),6) from tb)   
    end    
    create table tb   
    (   
      BH char(8) primary key default dbo.FC_Next(),   
      col int  
    )   
    select * from tb   
      
    begin tran   
    insert into tb (col) values (1)   
    insert into tb (col) values (2)   
    insert into tb(BH,col) values (dbo.FC_Next(),14)   
    commit tran   
    select * from tb  
      

  3.   


    IF OBJECT_ID('TI')IS NOT NULL DROP TABLE TI
    GO
    CREATE TABLE TI([NAME] VARCHAR(10))
    INSERT TI SELECT '张三'
    INSERT TI SELECT '李四'
    INSERT TI SELECT '王五'
    INSERT TI SELECT '赵六'select 自动编号=(select count(*) from ti where name<=a.name),* from ti a order by namedrop table TI
    /*自动编号        NAME       
    ----------- ---------- 
    1           李四
    2           王五
    3           张三
    4           赵六(所影响的行数为 4 行)*/
      

  4.   


    declare @TI table (分类 varchar(5),姓名 sql_variant,金额 sql_variant,收费员 sql_variant)
    insert into @TI
    select '数据1',null,null,null union all
    select '数据2',null,null,null union all
    select '数据3',null,null,null union all
    select '数据4',null,null,nullselect * from @TI select row_number()  over(order by 分类) as 自动编号,* from @TI
      

  5.   


    --> 测试数据: @TI
    declare @TI table (分类 varchar(5),姓名 varchar(5),金额 varchar(5),收费员 varchar(5))
    insert into @TI
    select '数据1',null,null,null union all
    select '数据2',null,null,null union all
    select '数据3',null,null,null union all
    select '数据4',null,null,nullselect * from @TI
    /*
    分类    姓名    金额    收费员
    ----- ----- ----- -----
    数据1   NULL  NULL  NULL
    数据2   NULL  NULL  NULL
    数据3   NULL  NULL  NULL
    数据4   NULL  NULL  NULL(4 row(s) affected)
    */select '00'+cast(row_number()  over(order by 分类) as nvarchar(6)) as 自动编号,* from @TI
    /*
    自动编号     分类    姓名    金额    收费员
    -------- ----- ----- ----- -----
    001      数据1   NULL  NULL  NULL
    002      数据2   NULL  NULL  NULL
    003      数据3   NULL  NULL  NULL
    004      数据4   NULL  NULL  NULL
    */
      

  6.   

    首先可以创建一张临时表用于插入一列自增值,到时候只要检索临时表就可以了declare @TI table (分类 varchar(5),姓名 varchar(5),金额 varchar(5),收费员 varchar(5))
    insert into @TI
    select '数据1',null,null,null union all
    select '数据2',null,null,null union all
    select '数据3',null,null,null union all
    select '数据4',null,null,nullselect identity(int,1,1) as ID  ,* into #temp from @TI 
    select '00'+cast(ID as nvarchar(6)) as 自动编号,分类,姓名,金额,收费员
     from #tempdrop table #temp
    ------------------------------Result--------------------------
    001 数据1 NULL NULL NULL
    002 数据2 NULL NULL NULL
    003 数据3 NULL NULL NULL
    004 数据4 NULL NULL NULL
      

  7.   


    declare @t1 table (分数 nvarchar(10))
    insert into @t1 select '数据1'
         union all  select '数据2'
         union all  select '数据3'
         union all  select '数据4'
    select IDENTITY(int,001,1) 序号,* into # from @t1
    select * from #
    drop table #序号          分数
    ----------- ----------
    1           数据1
    2           数据2
    3           数据3
    4           数据4(4 行受影响)
      

  8.   


    if object_id('tb') is not null
       drop table tb
    go
    create table tb(分类 varchar(100))
    go
    insert into tb
    select '数据1' union all
    select '数据2' union all
    select '数据3' union all
    select '数据4'
    go
    if object_id('tempdb..#') is not null
       drop table #
    go
    select ID=identity(int,1,1),* into # from tb
    go
    select 编号=replicate('0',3-len(cast(Id as varchar)))+cast(id as varchar),分类 from #
      

  9.   


    SELECT right('000'+ltrim(row_number() over(order by 分类)),3) as 自动生成的编号,* FROM TB T