除了在新建表时设标识增量ID字段和使用游标方法外,有什么好方法为一个表的某字段添上流水增量ID记录

解决方案 »

  1.   

    ALTER TABLE table1 ADD id  int identity(1,1)
      

  2.   

    可以写自定义函数 eg: myFun(),再到字段的默认值里面加上此函数 dbo.myFun()。
      

  3.   

    企业管理器-->右键你的表-->设计表-->选中一int类型字段-->下面有个属性叫“标识”的
      

  4.   

    没说明白,不好意思,问题是这样的:
    我用SELECT 语句分别插入几批记录,希望得到以下结果:
    第一批记录时A字段值为1,2,3,X
    第二批记录时A字段值为1,2,3,X
              
              。
      

  5.   

    没说明白,不好意思,问题是这样的:
    我用insert ...SELECT 语句分别插入几批记录,希望得到以下结果:
    第一批记录时A字段值为1,2,3,X
    第二批记录时A字段值为1,2,3,X
              
              。
      

  6.   

    select identity(int,1,1) as id ,* 
    into #table_temp
    from 你的表用完以后删除他
    drop table table_temp
      

  7.   

    没说明白,不好意思,问题是这样的:
    用insert ...SELECT 语句向同一表分别插入几批记录,表中的A字段希望得到以下结果:
    第一批记录时A字段值为1,2,3,X
    第二批记录时A字段值为1,2,3,X
              
              。
      

  8.   

    第一批记录;
       insert into 目的表(A,col1,col2,col3)
       select identity(int,1,1) as id,col1,col2,col3 from 原表
    第二批记录
       insert into 目的表(A,col1,col2,col3)
       select identity(int,1,1) as id,col1,col2,col3 from 原表
      

  9.   

    对不起,搞错了。上面的少了into # table_temp,更正见下:
    第一批记录;   select identity(int,1,1) as id,col1,col2,col3 into #table_temp1 from 原表
       insert into 目的表(A,col1,col2,col3) 
       select A,col1,col2,col3 from table_temp
    第二批记录
       select identity(int,1,1) as id,col1,col2,col3 into #table_temp2 from 原表
       insert into 目的表(A,col1,col2,col3) 
       select A,col1,col2,col3 from table_temp
      

  10.   

    一错再错,临时表后面少了一个#,非常对不起!
    第一批记录;   select identity(int,1,1) as id,col1,col2,col3 into #table_temp1 from 原表
       insert into 目的表(A,col1,col2,col3) 
       select A,col1,col2,col3 from #table_temp
    第二批记录
       select identity(int,1,1) as id,col1,col2,col3 into #table_temp2 from 原表
       insert into 目的表(A,col1,col2,col3) 
       select A,col1,col2,col3 from #table_temp