IT story

SQL을 사용하여 데이터베이스 테이블의 열 이름을 바꾸려면 어떻게합니까?

hot-time 2020. 8. 4. 22:52
반응형

SQL을 사용하여 데이터베이스 테이블의 열 이름을 바꾸려면 어떻게합니까?


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> ...

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


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

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 줄이 필요합니다. 더 복잡한 것은 누락 된 부분을 채우면 매우 지저분해질 수 있습니다.

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


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

SP_RENAME 'TABLE_NAME.OLD_COLUMN_NAME','NEW_COLUMN_NAME'

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

RENAME COLUMN TableName.OldName TO NewName;

이는 SQL 표준에서 해결 된 경우 SQL 표준이 문제를 해결하기 전에 구현되었습니다. SQL 9075 : 2003 표준 사본에 표준으로 표시되지 않습니다 (다른 무엇보다도 RENAME은 키워드 중 하나가 아닙니다). 실제로 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이지만, 발생할 가능성이있는 모든 DBMS에서 반드시 지원되는 것은 아니므로, 포괄적 인 구문을 찾고 있다면 운이 좋지 않을 수 있습니다.


또는 SQLMicrosoft SQL Server Management Studio의 테이블 디자인 패널에서이 작업을 수행 할 수 있습니다.

첫 번째 방법

Slow double-click on the column. The column name will become an editable text box.

Second Way

SqlManagement Studio>>DataBases>>tables>>specificTable>>Column Folder>>Right Click on column>>Reman

Third Way

Table>>RightClick>>Design

참고URL : https://stackoverflow.com/questions/174582/how-do-i-rename-a-column-in-a-database-table-using-sql

반응형