테이블 만들기 및 수정 기본 사항

데이터베이스 디자인 후 데이터베이스에 데이터를 저장할 테이블을 만들 수 있습니다. 일반적으로 데이터는 영구 테이블에 저장되지만 사용자가 임시 테이블을 만들 수도 있습니다. 테이블은 삭제될 때까지 데이터베이스 파일에 저장되고 필요한 사용 권한이 있는 사용자는 누구나 테이블을 사용할 수 있습니다.

테이블 속성

테이블당 최대 1,024개의 열을 정의할 수 있습니다. 테이블 이름과 열 이름은 식별자 규칙을 따라야 합니다. 열 이름은 특정 테이블 내에서 고유해야 하지만 같은 데이터베이스의 서로 다른 테이블에서 같은 열 이름을 사용할 수 있습니다. 자세한 내용은 식별자식별자를 개체 이름으로 사용을 참조하십시오. 각 열에 대해 데이터 형식을 지정해야 합니다. 자세한 내용은 열에 데이터 형식 할당을 참조하십시오.

테이블 이름은 데이터베이스 내의 각 스키마에 대해 고유해야 하지만 각 테이블에 대해 다른 스키마를 지정하면 같은 이름의 테이블을 여러 개 만들 수 있습니다. employees라는 테이블을 두 개 만들고 한 테이블의 스키마를 Jonah로 지정하고 다른 테이블의 스키마를 Sally로 지정할 수 있습니다. employees 테이블 중 하나를 사용해야 할 때는 테이블 이름과 함께 스키마를 지정하여 두 테이블을 구분할 수 있습니다.

테이블을 만들려면

CREATE TABLE(Transact-SQL)

방법: 테이블 만들기(Visual Database Tools)

임시 테이블

임시 테이블은 tempdb에 저장되었다가 더 이상 사용되지 않을 때 자동으로 삭제된다는 점을 제외하고는 영구 테이블과 비슷합니다.

임시 테이블에는 로컬과 전역의 두 유형이 있습니다. 이 두 유형은 이름, 표시 여부 및 가용성 면에서 서로 다릅니다. 로컬 임시 테이블은 이름이 한 개의 숫자 기호(#)로 시작하며 사용자의 현재 연결에만 표시되고 사용자가 SQL Server 인스턴스와의 연결을 끊으면 삭제됩니다. 전역 임시 테이블은 이름이 두 개의 숫자 기호(##)로 시작하며 테이블 작성 후 모든 사용자에게 표시되고 테이블을 참조하는 모든 사용자가 SQL Server인스턴스와의 연결을 끊으면 삭제됩니다.

예를 들어 employees라는 테이블을 만들면 테이블이 삭제될 때까지 데이터베이스에서 이 테이블을 사용할 수 있는 보안 권한을 가진 모든 사용자가 테이블을 사용할 수 있습니다. 데이터베이스 세션에서 #employees라는 로컬 임시 테이블이 생성되면 해당 세션에서만 테이블을 사용할 수 있으며 세션 연결이 끊어지면 테이블이 삭제됩니다. ##employees라는 전역 임시 테이블을 만들면 데이터베이스의 모든 사용자가 이 테이블을 사용할 수 있습니다. 이 테이블을 만든 후 다른 사용자가 테이블을 사용하지 않는 경우 테이블을 만든 사용자가 연결을 끊을 때 테이블이 삭제됩니다. 테이블을 만든 후 다른 사용자가 테이블을 사용하는 경우 테이블을 만든 사용자가 연결을 끊고 다른 모든 세션에서 테이블을 더 사용하지 않으면 SQL Server에서 테이블이 삭제됩니다.

명명된 제약 조건을 적용하여 사용자 정의 트랜잭션 범위 내에 임시 테이블을 만드는 경우 한 번에 한 명의 사용자만 이 임시 테이블을 만드는 문을 실행할 수 있습니다. 예를 들어 저장 프로시저가 명명된 기본 키 제약 조건을 적용하여 임시 테이블을 만드는 경우 이 저장 프로시저를 여러 사용자가 동시에 실행할 수 없습니다.

임시 테이블 대신 table 데이터 형식의 변수를 사용할 수도 있습니다. table 변수를 사용하는 방법은 table(Transact-SQL)을 참조하십시오.

테이블 수정

테이블을 만든 후 테이블 작성 시 정의한 옵션 중 대부분을 변경할 수 있습니다. 다음과 같이 변경할 수 있습니다.

  • 열을 추가, 수정 또는 삭제할 수 있습니다. 예를 들어 약간의 제한이 있지만 열 이름, 길이, 데이터 형식, 정밀도, 배율 및 Null 허용 여부를 변경할 수 있습니다. 자세한 내용은 열 속성 수정을 참조하십시오.

  • 분할된 테이블의 경우 테이블을 다시 분할하거나 개별 파티션을 추가 또는 제거할 수 있습니다. 자세한 내용은 분할된 테이블 및 인덱스 수정파티션 전환을 사용하여 데이터를 효율적으로 전송을 참조하십시오.

  • PRIMARY KEY 및 FOREIGN KEY 제약 조건을 추가하거나 삭제할 수 있습니다.

  • UNIQUE 제약 조건, CHECK 제약 조건, DEFAULT 정의 및 개체를 추가하거나 삭제할 수 있습니다.

  • IDENTITY 또는 ROWGUIDCOL 속성을 사용하여 식별자 열을 추가하거나 삭제할 수 있습니다. ROWGUIDCOL 속성을 기존 열에서 추가하거나 삭제할 수 있습니다. 단, 테이블에서 한 번에 한 열만 ROWGUIDCOL 속성을 가질 수 있습니다.

  • 테이블 및 테이블에서 선택한 열을 전체 텍스트 인덱싱에 등록할 수 있습니다.

테이블에서 수정할 수 있는 사항에 대한 자세한 내용은 ALTER TABLE(Transact-SQL)을 참조하십시오.

테이블 이름이나 스키마도 변경할 수 있습니다. 이때 기존 테이블 이름이나 스키마를 사용하는 트리거, 저장 프로시저, Transact-SQL 스크립트 또는 기타 프로그래밍 코드에서도 테이블 이름을 변경해야 합니다.

테이블 이름을 바꾸려면

sp_rename(Transact-SQL)

테이블 속성(Visual Database Tools)

테이블 스키마를 변경하려면

ALTER SCHEMA(Transact-SQL)