去标识alter table tablename add id1 intupdate tablename set id1=idalter table tablename drop column idexec sp_rename 'tablename.id1','id'

解决方案 »

  1.   

    加标识有数据的话
    ALTER TABLE 表 ADD 编号1 bigint identity(1,1) not null
    go
    SET IDENTITY_INSERT 表 ON
    go
    update 表 set 编号1=编号
    go
    SET IDENTITY_INSERT 表 OFF
    go
    ALTER TABLE 表 DROP COLUMN 编号 
    go
    exec sp_rename '表.编号1','编号'
    go
      

  2.   

    1:alter table yourTable add idd int
      update yourTable set idd = id
      alter table yourTable drop column id
      sp_rename 'yourTable.[idd]','id',COLUMN
      

  3.   

    添加表字段的自增属性create table test1 (id int,cc varchar(2))
    go
    BEGIN TRANSACTION
    SET QUOTED_IDENTIFIER ON
    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
    SET ARITHABORT ON
    SET NUMERIC_ROUNDABORT OFF
    SET CONCAT_NULL_YIELDS_NULL ON
    SET ANSI_NULLS ON
    SET ANSI_PADDING ON
    SET ANSI_WARNINGS ON
    COMMIT
    BEGIN TRANSACTION
    CREATE TABLE dbo.Tmp_test1
    (
    id int NOT NULL IDENTITY (1, 1),
    cc varchar(2) NULL
    )  ON [PRIMARY]
    GO
    SET IDENTITY_INSERT dbo.Tmp_test1 ON
    GO
    IF EXISTS(SELECT * FROM dbo.test1)
     EXEC('INSERT INTO dbo.Tmp_test1 (id, cc)
    SELECT id, cc FROM dbo.test1 TABLOCKX')
    GO
    SET IDENTITY_INSERT dbo.Tmp_test1 OFF
    GO
    DROP TABLE dbo.test1
    GO
    EXECUTE sp_rename N'dbo.Tmp_test1', N'test1', 'OBJECT'
    GO
    COMMIT
      

  4.   

    2: alter table yourTable add id int identity(1,1)
      

  5.   

    去除表字段的自增属性BEGIN TRANSACTION
    SET QUOTED_IDENTIFIER ON
    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
    SET ARITHABORT ON
    SET NUMERIC_ROUNDABORT OFF
    SET CONCAT_NULL_YIELDS_NULL ON
    SET ANSI_NULLS ON
    SET ANSI_PADDING ON
    SET ANSI_WARNINGS ON
    COMMIT
    BEGIN TRANSACTION
    CREATE TABLE dbo.Tmp_test1
    (
    id int NOT NULL,
    cc varchar(2) NULL
    )  ON [PRIMARY]
    GO
    IF EXISTS(SELECT * FROM dbo.test1)
     EXEC('INSERT INTO dbo.Tmp_test1 (id, cc)
    SELECT id, cc FROM dbo.test1 TABLOCKX')
    GO
    DROP TABLE dbo.test1
    GO
    EXECUTE sp_rename N'dbo.Tmp_test1', N'test1', 'OBJECT'
    GO
    COMMIT
      

  6.   

    我的两个方法是SQL server企业管理器的做法,如果表中已有大量数据,耗时太多。
    不知pengdali(大力 V2.0)用alter table的方法效率如何?
      

  7.   

    alter table tablename add test int identity(1,1) not null
      

  8.   

    先加一个字段,然后把原先的id复制到新的字段中,删除原来的id,再把新的更名为id就是大力的做法!我就是学大力的!
      

  9.   

    标识有数据的话
    ALTER TABLE 表 ADD 编号1 bigint identity(1,1) not null
    go
    SET IDENTITY_INSERT 表 ON
    go
    update 表 set 编号1=编号
    go
    SET IDENTITY_INSERT 表 OFF
    go
    ALTER TABLE 表 DROP COLUMN 编号 
    go
    exec sp_rename '表.编号1','编号'