表一
a       b    c    d
张三    1    2    1
张三    2    2    2
李四    1    2    3
李四    2    2    4
王五    1    2    5
王五    2    2    6 
从表一中提取最大条记录并更新c列数据得表2
a       b    c    d
张三    2    5    2
李四    2    5    4
王五    2    5    6 
现要将表二加入到表一中,为表一中每个人增加一条记录,
遇到的问题,D列为主键自增长列,加不进去,求解,MS-SQL。主键,自增列

解决方案 »

  1.   

    set IDENTITY_INSERT TB  on 
    sql语句
    set IDENTITY_INSERT  TB   off不过不建议随意修改自增列
      

  2.   

    关键是我实际有三四十列,都列出来实在太麻烦。
    INSERT INTO 表一  SELECT * from 表2  where ....
      

  3.   

    额列出表中全部字段用is_identity属性去掉标识列select stuff((select ','+name from sys.columns where object_id=object_id('表名') 
    and is_identity=0 for xml path('')),1,1,'')
      

  4.   

    动态显示列名DECLARE @s NVARCHAR(MAX)
    SET @s = ''
    SELECT  @s = @s + ',' + QUOTENAME(name)
    FROM    syscolumns
    WHERE   id = OBJECT_ID('表名')
            AND NAME NOT IN ( '不希望显示的列' )
    SET @s = STUFF(@s, 1, 1, '')
    EXEC ('select' +@s+'from 表名')