SQL을 사용하여 데이터베이스 테이블의 열 이름을 어떻게 바꾸나요?

StackOverflow https://stackoverflow.com/questions/174582

문제

SQL을 사용하여 SQL 데이터베이스에서 열의 이름을 바꾸고 싶다면 어떻게해야합니까? 아니면 불가능합니까?

이것은 SQL을 지원한다고 주장하는 모든 데이터베이스를위한 것입니다. 저는 실제 데이터베이스 구현에 관계없이 작동하는 SQL 별 쿼리를 찾고 있습니다.

도움이 되었습니까?

해결책

Postgresql (및 기타 많은 rdbms)에서는 정기적으로 할 수 있습니다. ALTER TABLE 성명:

=> SELECT * FROM Test1;
 id | foo | bar 
----+-----+-----
  2 |   1 |   2

=> ALTER TABLE Test1 RENAME COLUMN foo TO baz;
ALTER TABLE

=> SELECT * FROM Test1;
 id | baz | bar 
----+-----+-----
  2 |   1 |   2

다른 팁

특히 SQL Server의 경우 사용하십시오 sp_rename

USE AdventureWorks;
GO
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO

MySQL에서 구문은입니다 ALTER TABLE ... CHANGE:

ALTER TABLE <table_name> CHANGE <column_name> <new_column_name> <data_type> ...

유형과 제약을 그대로 바꾸고 남겨 둘 수는 없습니다. 열의 새 이름 뒤에 데이터 유형 및 제약 조건을 다시 입력해야합니다.

나는 이것이 열 이름을 변경하는 가장 쉬운 방법이라고 생각합니다.

SP_RENAME 'TABLE_NAME.OLD_COLUMN_NAME','NEW_COLUMN_NAME'

불행히도 데이터베이스 독립 솔루션의 경우 열에 대한 모든 것을 알아야합니다. 다른 테이블에서 외국 키로 사용되면 수정해야합니다.

ALTER TABLE MyTable ADD MyNewColumn OLD_COLUMN_TYPE;
UPDATE MyTable SET MyNewColumn = MyOldColumn;
-- add all necessary triggers and constraints to the new column...
-- update all foreign key usages to point to the new column...
ALTER TABLE MyTable DROP COLUMN MyOldColumn;

가장 간단한 경우 (제약, 트리거, 인덱스 또는 키 없음)의 경우 위의 3 줄을 사용합니다. 더 복잡한 경우 누락 된 부품을 채울 때 매우 지저분해질 수 있습니다.

그러나 위에서 언급했듯이 미리 수정 해야하는 데이터베이스를 알고 있다면 더 간단한 데이터베이스 별 방법이 있습니다.

Informix에서는 다음을 사용할 수 있습니다.

RENAME COLUMN TableName.OldName TO NewName;

SQL 표준이 문제를 해결하기 전에 구현되었습니다.이 문제는 SQL 표준에서 해결되면 문제가 해결되었습니다. SQL 9075 : 2003 표준의 사본은 표준으로 표시되지 않습니다 (무엇보다도 이름 바꾸기는 키워드 중 하나가 아닙니다). 실제로 SQL 9075 : 2008에 있는지 모르겠습니다.

SQL Server에서 사용할 수 있습니다

exec sp_rename '<TableName.OldColumnName>','<NewColumnName>','COLUMN'

또는

sp_rename '<TableName.OldColumnName>','<NewColumnName>','COLUMN'

다음 명령을 사용하여 SQL Server의 모든 테이블 열의 이름을 바꿀 수 있습니다.

exec sp_rename 'TableName.OldColumnName', 'New colunmName'

Alter Table은 표준 SQL입니다. 그러나 많은 데이터베이스 시스템에서 완전히 구현되지는 않습니다.

표준이 될 것입니다 ALTER TABLE, 그러나 그것은 당신이 겪을 모든 DBM에 의해 반드시 지원되는 것은 아니므로, 포괄적 인 구문을 찾고 있다면 운이 좋지 않을 수 있습니다.

대안 적으로 SQL, 테이블 디자인 패널에서 Microsoft SQL Server Management Studio에서이를 수행 할 수 있습니다.

첫 번째 방법

열을 두 번 클릭하십시오. 열 이름은 편집 가능한 텍스트 상자가됩니다.

두 번째 방법

sqlmanagement studio >> 데이터베이스 >> 테이블 >> 지정 가능 >> 열 폴더 >> 열 오른쪽 버튼을 클릭하십시오 >> reman

세 번째 방법

테이블 >> 오른쪽 클릭 >> 디자인

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top