ALTER TABLE tab ADD  column_x INT IDENTITY
 

解决方案 »

  1.   

    alter table alter column <columnname> <type> identity
      

  2.   

    select * into #tmp from yourtable
    drop table yourtable
    create table yourtable( id int identity(1, 1), ... )
    set identity_insert yourtable on
    insert into yourtable( id, ... ) select id, ... from #tmp
    set identity_insert yourtable off
      

  3.   

    alter table 表名 alter 列名 int identity(1,1)
      

  4.   

    可以这样解决:
    select * into #tmp from yourtable
    truncate table yourtablealter table yourtable drop 列名
    alter table yourtable add 列名 int identity(1,1)set identity_insert yourtable on
    insert into yourtable select * from #tmp
    set identity_insert yourtable off
      

  5.   

    alter table tablename alter colname int identity(1,1)
      

  6.   

    alter table table_name
    alter column
    column_name int identity(1,1) primary key
      

  7.   

    alter talbe 表名 alter column 列名 int identity(1,1)要把标识去掉,可以参考我的这帖,不过太过于麻烦:
    http://community.csdn.net/Expert/topic/3322/3322791.xml?temp=.3668329
      

  8.   

    select identity(int,1,1) as tempname,* into temptable from tablename
    drop table tablename
    exec sp_rename  'temptable','tablename'
      

  9.   

    to  yjdn(无尽天空),yjr332533(圣骑士) ,Chuff(无名小卒),qq_net(小小) :
    你们这样写不会错吗?
        alter talbe 表名 alter column 列名 int identity(1,1)
    为什么我这样写在查询分析器中,有语法错误???
    ALTER TABLE UserTblUser
    ALTER COLUMN [ID] bigint identity(1,1)
    ==================================================================
    服务器: 消息 156,级别 15,状态 1,行 2
    在关键字 'identity' 附近有语法错误。
      

  10.   

    我的语句是不会错的,
    也许是你的bigint错了,
    我们用的是int
      

  11.   

    已经说过:identity列只能新建或删除,不能在原有列的基础上改所以楼上是不对的
      

  12.   

    星星一发话,我心中一惊,一去看,果然错了,
    对不起,楼上,
    但是我还是有个印象我这样做过一次,成功了的,
    回去细想一下什么原因
    先给JeffCls(痛苦的人) 道个歉
      

  13.   

    呵呵...我就是奇怪...我开始按照它的语法说明也是这样写的,但老提示出错..看了一下帮助感觉没有错呀..但就是不行...
    但是直接在管理器中改是可行的...不知它生成的代码是什么,能不能看到...还有.. pbsql(风云) 大侠能不能说一下这种列为什么不能用代码直接更改呢?而在管理器中更改后..表中的数据依然是正确的呀
      

  14.   

    那是SQL SERVER的规定,看看帮助就知道了:“IDENTITY 属性”
      

  15.   

    有个简单点的办法,就是一边打开企业管理器,打开相关表的表设计窗体。
    另一边打开SQL事件探查器,准备跟踪。然后在企业管理器里面操作增加或删除identity属性的操作,然后在事件探查器里面睽睽到底执行的什么代码不就知道了?
      

  16.   

    ALTER TABLE tab ADD 
     column_name INT IDENTITY(1,1)
      

  17.   

    首先创建一个表:
    CREATE TABLE [Test] (
    [F1] [int] IDENTITY (1, 1) NOT NULL ,
    [F2] [int] NULL ,
    [F3] [int] NULL ,
    [F4] [int] NULL 
    ) ON [PRIMARY]
    GO在企业管理器里把标识列去掉,以下是跟踪结果:一、
    CREATE TABLE dbo.Tmp_Test
    (
    F1 int NOT NULL,
    F2 int NULL,
    F3 int NULL,
    F4 int NULL
    )  ON [PRIMARY]二、
    IF EXISTS(SELECT * FROM dbo.Test)
     EXEC('INSERT INTO dbo.Tmp_Test (F1, F2, F3, F4)
    SELECT F1, F2, F3, F4 FROM dbo.Test TABLOCKX')三、
    DROP TABLE dbo.Test四、
    declare @P1 int
    set @P1=0
    declare @P2 int
    set @P2=16388
    declare @P3 int
    set @P3=8193
    declare @P4 int
    set @P4=0
    exec sp_cursoropen @P1 output, N'EXECUTE sp_rename N''dbo.Tmp_Test'', N''Test'', ''OBJECT''
    ', @P2 output, @P3 output, @P4 output
    select @P1, @P2, @P3, @P4