source

SQL Server 2008 열 이름 변경

ittop 2023. 4. 7. 21:58
반응형

SQL Server 2008 열 이름 변경

SQL Server 2008과 Navicat을 사용하고 있습니다.SQL을 사용하여 테이블의 열 이름을 변경해야 합니다.

ALTER TABLE table_name RENAME COLUMN old_name to new_name;

이 문장은 작동하지 않습니다.

사용하다sp_rename

EXEC sp_RENAME 'TableName.OldColumnName' , 'NewColumnName', 'COLUMN'

참조: SQL SERVER – 컬럼 이름 또는 테이블 이름 변경 방법

문서: sp_module (Transact-SQL)

고객님의 경우 다음과 같습니다.

EXEC sp_RENAME 'table_name.old_name', 'new_name', 'COLUMN'

작은 따옴표를 사용하여 값을 묶는 것을 잊지 마십시오.

다른 방법으로는SQLMicrosoft SQL Server Management Studio에서 이 작업을 수행할 수 있습니다.다음은 GUI를 사용하는 몇 가지 간단한 방법입니다.

퍼스트웨이

열을 천천히 두 번 클릭합니다.열 이름이 편집 가능한 텍스트 상자가 됩니다.


세컨드 웨이

열을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 이름 변경을 선택합니다.

예를 들어 다음과 같습니다.

열 이름을 변경하려면


서드웨이

이 방법은 여러 열의 이름을 한 번에 변경해야 하는 경우에 적합합니다.

  1. 이름을 변경해야 하는 열이 포함된 테이블을 마우스 오른쪽 버튼으로 클릭합니다.
  2. [설계] 를 누릅니다.
  3. 표 설계 패널에서 변경할 열 이름의 텍스트 상자를 누르고 편집합니다.

예를 들어 다음과 같습니다.MSSMS 테이블 설계 예시

메모: OP가 SQL 솔루션을 특별히 요청했다는 것을 알고 있습니다.다른 사람에게 도움이 될 수 있다고 생각합니다.

시험:

EXEC sp_rename 'TableName.OldName', 'NewName', 'COLUMN'

테이블의 스키마도 지정해야 합니다.지정하지 않을 경우 다음 오류가 발생할 수 있습니다.

Msg 15248, Level 11, State 1, Procedure sp_rename, Line 238 파라미터 @objname이 애매하거나 클레임된 @objtype(COLUMN)이 잘못되었습니다.

전개 스크립트의 경우는, 시큐러티를 추가하는 것도 추천합니다.

IF EXISTS (
        SELECT 1
        FROM sys.columns
        WHERE
            name = 'OldColumnName' AND
            object_name(object_id) = 'TableName'
    ) AND
    NOT EXISTS (
        SELECT 1
        FROM sys.columns
        WHERE
            name = 'NewColumnName' AND
            object_name(object_id) = 'TableName'
    )
    EXEC sp_RENAME 'SchemaName.TableName.OldColumnName', 'NewColumnName', 'COLUMN';

여기 자주 와서 브래킷 사용법을 고민하고 있기 때문에, 이 답변은 저 같은 사람에게 도움이 될지도 모릅니다.

EXEC sp_rename '[DB].[dbo].[Tablename].OldColumnName', 'NewColumnName', 'COLUMN'; 
  • OldColumnName안에 있어서는 안 된다[]. 작동하지 않을 것입니다.
  • 넣지 마세요NewColumnName안으로[]그 결과,[[NewColumnName]].

를 사용하여 열의 이름을 변경할 수 있습니다.

USE YourDatabase;  
GO  
EXEC sp_rename 'TableName.OldColumnName', 'NewColumnName', 'COLUMN';  
GO  

첫 번째 파라미터는 변경할 오브젝트, 두 번째 파라미터는 오브젝트에 부여되는 새로운 이름, 세 번째 파라미터 COLUMN은 서버 이름 변경에 대해column를 사용하여 이름을 변경할 수도 있습니다.tables,index그리고.alias data type.

이미 내장된 기능을 사용하는 것이 좋습니다만, 다른 방법은 다음과 같습니다.

  1. 동일한 데이터 유형과 새 이름으로 새 열을 생성합니다.
  2. UPDATE/INSERT 문을 실행하여 모든 데이터를 새 열에 복사합니다.
  3. 오래된 컬럼을 드롭합니다.

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★의 장점sp_rename그것과 관련된 모든 관계를 관리한다는 것입니다.

매뉴얼에서 다음 항목을 참조하십시오.

sp_rename은 PRIMAY KEY 또는 UNIKE 제약조건의 이름이 변경될 때마다 관련 인덱스의 이름을 자동으로 변경합니다.이름이 변경된 인덱스가 PRIMAY KEY 제약조건에 연결되어 있는 경우 PRIMAY KEY 제약조건도 sp_rename에 의해 자동으로 이름이 변경됩니다.sp_rename을 사용하여 기본 및 보조 XML 인덱스의 이름을 변경할 수 있습니다.

@Taher의 향상된 버전

DECLARE @SchemaName AS VARCHAR(128)
DECLARE @TableName AS VARCHAR(128)
DECLARE @OldColumnName AS VARCHAR(128)
DECLARE @NewColumnName AS VARCHAR(128)
DECLARE @ParamValue AS VARCHAR(1000)

SET @SchemaName = 'dbo'
SET @TableName = 'tableName'
SET @OldColumnName = 'OldColumnName'
SET @NewColumnName = 'NewColumnName'
SET @ParamValue = @SchemaName + '.' + @TableName + '.' + @OldColumnName

IF EXISTS
(
    SELECT 1 FROM sys.columns WHERE name = @OldColumnName AND OBJECT_NAME(object_id) = @TableName
)
AND NOT EXISTS
(
    SELECT 1 FROM sys.columns WHERE name = @NewColumnName AND OBJECT_NAME(object_id) = @TableName
)
BEGIN
    EXEC sp_rename @ParamValue, @NewColumnName, 'COLUMN';
END

SQL Server SP(Stored Procedure)를 사용합니다.
그 중 하나는 열의 이름을 변경하는 데 사용됩니다.SP는 sp_rename.

구문: sp_rename ' [ table _ name ]old_column_name', 'new_column_name'
상세한 것에 대하여는, 문서 번호 「sp_rename by Microsoft Docs」(Microsoft Docsp_rename by Microsoft Docs

주의: 이 SP를 실행하면 sql 서버에서 다음과 같은 주의 메시지가 나타납니다.주의: 개체 이름의 일부를 변경하면 스크립트와 저장 프로시저가 손상될 수 있습니다.이것은 변경하려는 테이블의 열을 포함하는 자체 sp를 작성한 경우에만 중요합니다.

또는 SQL Management Studio의 열을 두 번 천천히 클릭하고 UI를 통해 이름을 변경할 수도 있습니다.

쿼리 실행:

    SP_RENAME '[TableName].[ColumnName]','NewNameForColumn'

언급URL : https://stackoverflow.com/questions/16296622/rename-column-sql-server-2008

반응형