테이블 추가 열 구문 변경


142

프로그래밍 방식으로 테이블 직원에 신원 열을 추가하려고합니다. 구문에서 내가 뭘 잘못하고 있는지 잘 모르겠습니다.

ALTER TABLE Employees
  ADD COLUMN EmployeeID int NOT NULL IDENTITY (1, 1)

ALTER TABLE Employees ADD CONSTRAINT
    PK_Employees PRIMARY KEY CLUSTERED 
    (
      EmployeeID
    ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
    ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

내가 뭘 잘못하고 있죠? 스크립트를 내보내려고했지만 SQL Mgmt Studio는 전체 임시 테이블 이름 바꾸기 작업을 수행합니다.

업데이트 : 나는 "키워드 'COLUMN'근처의 구문이 잘못되었습니다."

답변:


195

그냥 삭제 COLUMN에서ADD COLUMN

ALTER TABLE Employees
  ADD EmployeeID numeric NOT NULL IDENTITY (1, 1)

ALTER TABLE Employees ADD CONSTRAINT
        PK_Employees PRIMARY KEY CLUSTERED 
        (
          EmployeeID
        ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
        ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

9
명확히하기 위해 'COLUMN'키워드는 MySQL에서만 유효하지만 필수는 아닙니다.
ethanbustad

4
@ethanbustad DB2 및 Postgres에도 유효합니다.
ᴠɪɴᴄᴇɴᴛ

3
그들이 column키워드를 무시하지 않고 다른 모든 DB처럼 작동하게 만드는 것은 어리석은 일입니다.
Bruce Pierson

참고로 Oracle은이 경우 SQL Server와 동일한 방식으로 작동 합니다. 둘 다 명령문 COLUMN에서 허용하지 않습니다 ADD.
bsplosion

11

이것이 테이블에 새 열 추가 방법입니다

ALTER TABLE [tableName]
ADD ColumnName Datatype

예 :

ALTER TABLE [Emp]
ADD Sr_No Int

그리고 자동으로 늘리려면

ALTER TABLE [Emp]
ADD Sr_No Int IDENTITY(1,1) NOT NULL

1
흠 흠, wa siga wah
eirenaios

5

테이블에 열을 추가하는 올바른 구문은 다음과 같습니다.

ALTER TABLE table_name
  ADD column_name column-definition;

귀하의 경우에는 다음과 같습니다.

ALTER TABLE Employees
  ADD EmployeeID int NOT NULL IDENTITY (1, 1)

여러 열을 추가하려면 괄호를 사용하십시오.

ALTER TABLE table_name
  ADD (column_1 column-definition,
       column_2 column-definition,
       ...
       column_n column_definition);

COLUMN SQL SERVER의 키워드는 다음 변경에만 사용됩니다.

ALTER TABLE table_name
  ALTER COLUMN column_name column_type;

0

순서를 변경하는 것보다 테이블의 시작 부분에 열을 추가하려는 경우 임시 테이블 이름 바꾸기를 수행 할 수 있습니다. 또한 Employees 테이블에 데이터가있는 경우, select *를 삽입하여 EmployeeID를 계산해야합니다.


1
"순서를 변경하는 것이 더 쉽다"-임시 테이블을 통해 테이블을 다시 만들지 않고 열의 순서를 변경하는 것이 가능합니까 (더 어렵지만)?
Örjan Jämte

1
관계형 데이터베이스에서는 열의 순서가 필요하지 않으므로 열을 깔끔하게 정렬하려는 경우 문제가 무엇입니까? 열 순서가 중요한 경우 열 순서를 바꾸거나 수정하는 사소한 기능이없는 이유는 무엇입니까? 그 이유는 서 수가 중요하지 않도록 설계 되었기 때문입니다.
Shiv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.