복붙노트

[SQL] MS SQL 서버에 그들을 기존 테이블에 열을 추가하고 고유 번호를

SQL

MS SQL 서버에 그들을 기존 테이블에 열을 추가하고 고유 번호를

나는 기존의 레거시 데이터베이스에 열을 추가 할 내가 각 레코드에 다른 값을 할당 할 수있는 절차를 작성합니다. 그것을 위해 데이터를 컬럼을 추가하고 자동 생성 비슷 해요.

마찬가지로, 만약 내가 "ID"(번호) 나는 다음 각 레코드에 고유 한 값을 초기화 할라는 새 열을 추가 할 수 있습니다. 그래서, 내 ID 열은 말 1 천 레코드를해야합니다. 어떻게 그렇게 할 수 있습니까?

해결법

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

    1.이 데이터베이스에 있지만 SQL Server에 대한 의존한다, 다음과 같이 얻을 수있다 :

    이 데이터베이스에 있지만 SQL Server에 대한 의존한다, 다음과 같이 얻을 수있다 :

    alter table Example
    add NewColumn int identity(1,1)
    
  2. ==============================

    2.당신은 당신이 사용중인 SQL 데이터베이스에 게시 된 경우는 도움이 될 것이다. MySQL을 위해 당신은 아마 AUTO_INCREMENT를 원하는 :

    당신은 당신이 사용중인 SQL 데이터베이스에 게시 된 경우는 도움이 될 것이다. MySQL을 위해 당신은 아마 AUTO_INCREMENT를 원하는 :

    ALTER TABLE tableName ADD id MEDIUMINT NOT NULL AUTO_INCREMENT KEY

    이 소급하지만 값을 적용하면 확실하지. 그렇지 않으면 당신은 단지 (긴 전혀 다른 데이터베이스에 쓰고 하나로서)과 세트를 사용 LAST_INSERT_ID () 함수는 ID 값을 생성하지 않으려면 저장 프로 시저 또는 간단한 프로그램에서 값을 반복 할 수 있어야한다 .

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

    3.Oracle의 경우 아래처럼 뭔가를 할 수

    Oracle의 경우 아래처럼 뭔가를 할 수

    alter table mytable add (myfield integer);
    
    update mytable set myfield = rownum;
    
  4. ==============================

    4.그리고 포스트 그레스 상당 (두 번째 줄은 "ID"키를 될 수 원하는 경우에만 필수입니다)

    그리고 포스트 그레스 상당 (두 번째 줄은 "ID"키를 될 수 원하는 경우에만 필수입니다)

    ALTER TABLE tableName ADD id SERIAL;
    ALTER TABLE tableName ADD PRIMARY KEY (id);
    
  5. ==============================

    5.그냥 ALTER TABLE 일을해야 사용. 적절한 유형 및 IDENTITY 플래그 열을 추가하고 트릭을 할해야

    그냥 ALTER TABLE 일을해야 사용. 적절한 유형 및 IDENTITY 플래그 열을 추가하고 트릭을 할해야

    는 ALTER TABLE 구문에 대한이 MSDN 문서 http://msdn.microsoft.com/en-us/library/aa275462(SQL.80).aspx을 확인

  6. ==============================

    6.SQL 서버에 고유 식별자 데이터 형식이 시도

    SQL 서버에 고유 식별자 데이터 형식이 시도

    Alter table table_name
    add ID UNIQUEIDENTIFIER not null unique default(newid())
    

    당신은 열 사용이 중 기본 키를 만들려면

    ALTER TABLE table_name
    ADD CONSTRAINT PK_name PRIMARY KEY (ID);
    
  7. ==============================

    7.각 데이터베이스는 일련 번호를 추가 할 수있는 다른 방법이 같은 데이터베이스에 따라 다릅니다. 나는 다음 데이터를 읽고 시퀀스와 ID를 업데이트 할 그루비 / 파이썬 / 등의 DB 스크립트를 작성 열을 추가 할 수있는 테이블을 변경합니다. 데이터가 설정되면, 나는 테이블에 시퀀스를 추가 할 것이라고 상단 번호 뒤에 시작됩니다. 데이터가 설정되면, 올바르게 기본 키를 설정합니다.

    각 데이터베이스는 일련 번호를 추가 할 수있는 다른 방법이 같은 데이터베이스에 따라 다릅니다. 나는 다음 데이터를 읽고 시퀀스와 ID를 업데이트 할 그루비 / 파이썬 / 등의 DB 스크립트를 작성 열을 추가 할 수있는 테이블을 변경합니다. 데이터가 설정되면, 나는 테이블에 시퀀스를 추가 할 것이라고 상단 번호 뒤에 시작됩니다. 데이터가 설정되면, 올바르게 기본 키를 설정합니다.

  8. ==============================

    8.원하지 않는 경우 새 열 유형의 IDENTITY (자동 증가)이 될 수 있습니다, 또는 당신은 당신이 유형 INT NULL의 열을 추가 한 다음처럼 채울 수 있습니다, 당신의 행 번호 순서에 대해 구체적으로 할 이. 내 예를 들어, 새로운 열이 MyNewColumn라고하며 테이블에 대한 기존의 기본 키 열이 MyPrimaryKey이라고합니다.

    원하지 않는 경우 새 열 유형의 IDENTITY (자동 증가)이 될 수 있습니다, 또는 당신은 당신이 유형 INT NULL의 열을 추가 한 다음처럼 채울 수 있습니다, 당신의 행 번호 순서에 대해 구체적으로 할 이. 내 예를 들어, 새로운 열이 MyNewColumn라고하며 테이블에 대한 기존의 기본 키 열이 MyPrimaryKey이라고합니다.

    UPDATE MyTable
    SET MyTable.MyNewColumn = AutoTable.AutoNum
    FROM
    (
        SELECT MyPrimaryKey, 
        ROW_NUMBER() OVER (ORDER BY SomeColumn, SomeOtherColumn) AS AutoNum
        FROM MyTable 
    ) AutoTable
    WHERE MyTable.MyPrimaryKey = AutoTable.MyPrimaryKey  
    

    이 SQL Server 2005에서 작동 이후, 즉 버전을 지원하는 ROW_NUMBER ()

  9. from https://stackoverflow.com/questions/108211/add-a-column-to-existing-table-and-uniquely-number-them-on-ms-sql-server by cc-by-sa and MIT license