복붙노트

[SQL] 어떻게 변경 신원 사양에 대한 표는 정체성 SQL 서버입니다

SQL

어떻게 변경 신원 사양에 대한 표는 정체성 SQL 서버입니다

작동하지 않는

ALTER TABLE ProductInProduct ALTER COLUMN Id KEY IDENTITY (1, 1);

확인 이미지

I는이 ID가 고유해야 원하는 테이블 ProductInProduct이 ..

해결법

  1. ==============================

    1.당신은 "변환"IDENTITY 열로 기존 열 수 없습니다 - 당신은 INT IDENTITY로 새 열을 만들어야합니다 :

    당신은 "변환"IDENTITY 열로 기존 열 수 없습니다 - 당신은 INT IDENTITY로 새 열을 만들어야합니다 :

    ALTER TABLE ProductInProduct 
    ADD NewId INT IDENTITY (1, 1);
    

    최신 정보:

    OK 때문에 IDENTITY 기존 열을 변환하는 방법이있다. 당신이 절대적이 필요한 경우 - 피투성이의 세부 사항 모두와 마틴 스미스이 응답을 확인하십시오.

  2. ==============================

    2.당신은 정체성에 대한 기존의 열을 변경할 수 없습니다.

    당신은 정체성에 대한 기존의 열을 변경할 수 없습니다.

    당신은 두 가지 옵션이 있습니다,

    정체성 새 테이블 만들기 및 기존 테이블을 삭제

    정체성 새 열을 생성 및 기존 열을 삭제

    다음은 새로 생성 된 ID 열에서 기존 데이터 값을 유지할 수 있습니다 1. (새로운 테이블)에 접근.

    CREATE TABLE dbo.Tmp_Names
        (
          Id int NOT NULL
                 IDENTITY(1, 1),
          Name varchar(50) NULL
        )
    ON  [PRIMARY]
    go
    
    SET IDENTITY_INSERT dbo.Tmp_Names ON
    go
    
    IF EXISTS ( SELECT  *
                FROM    dbo.Names ) 
        INSERT  INTO dbo.Tmp_Names ( Id, Name )
                SELECT  Id,
                        Name
                FROM    dbo.Names TABLOCKX
    go
    
    SET IDENTITY_INSERT dbo.Tmp_Names OFF
    go
    
    DROP TABLE dbo.Names
    go
    
    Exec sp_rename 'Tmp_Names', 'Names'
    

    당신은 새로 생성 된 ID 열에서 기존 데이터 값을 유지할 수 없습니다 2 (새 열)에 접근, 신원 열은 숫자의 순서를 개최한다.

    Alter Table Names
    Add Id_new Int Identity(1, 1)
    Go
    
    Alter Table Names Drop Column ID
    Go
    
    Exec sp_rename 'Names.Id_new', 'ID', 'Column'
    

    자세한 내용은 다음 Microsoft SQL 서버 포럼 게시물을 참조 :

    http://social.msdn.microsoft.com/forums/en-US/transactsql/thread/04d69ee6-d4f5-4f8f-a115-d89f7bcbc032

  3. ==============================

    3.당신은 테이블에 기본값으로 값을 설정하지 마십시오. 먼저 옵션 "바인딩 기본 값 또는"을 삭제한다.

    당신은 테이블에 기본값으로 값을 설정하지 마십시오. 먼저 옵션 "바인딩 기본 값 또는"을 삭제한다.

  4. from https://stackoverflow.com/questions/17291680/how-to-alter-a-table-for-identity-specification-is-identity-sql-server by cc-by-sa and MIT license