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 – 컬럼 이름 또는 테이블 이름 변경 방법
고객님의 경우 다음과 같습니다.
EXEC sp_RENAME 'table_name.old_name', 'new_name', 'COLUMN'
작은 따옴표를 사용하여 값을 묶는 것을 잊지 마십시오.
다른 방법으로는SQL
Microsoft SQL Server Management Studio에서 이 작업을 수행할 수 있습니다.다음은 GUI를 사용하는 몇 가지 간단한 방법입니다.
퍼스트웨이
열을 천천히 두 번 클릭합니다.열 이름이 편집 가능한 텍스트 상자가 됩니다.
세컨드 웨이
열을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 이름 변경을 선택합니다.
예를 들어 다음과 같습니다.
서드웨이
이 방법은 여러 열의 이름을 한 번에 변경해야 하는 경우에 적합합니다.
- 이름을 변경해야 하는 열이 포함된 테이블을 마우스 오른쪽 버튼으로 클릭합니다.
- [설계] 를 누릅니다.
- 표 설계 패널에서 변경할 열 이름의 텍스트 상자를 누르고 편집합니다.
예를 들어 다음과 같습니다.
메모: 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
.
이미 내장된 기능을 사용하는 것이 좋습니다만, 다른 방법은 다음과 같습니다.
- 동일한 데이터 유형과 새 이름으로 새 열을 생성합니다.
- UPDATE/INSERT 문을 실행하여 모든 데이터를 새 열에 복사합니다.
- 오래된 컬럼을 드롭합니다.
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★의 장점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
'source' 카테고리의 다른 글
HTML 양식의 작업 속성에 빈 URL을 사용하는 것이 좋은 방법입니까?(action=")" (0) | 2023.04.12 |
---|---|
EMDERVAL을 사용하여 닫힌 Excel 워크북의 값을 참조하시겠습니까? (0) | 2023.04.12 |
데이터베이스에 있는 모든 테이블의 크기를 가져옵니다. (0) | 2023.04.07 |
테이블(아직 존재하지 않는 경우)에 열을 추가합니다. (0) | 2023.04.07 |
datetime2 데이터 유형을 datetime 데이터 유형으로 변환하면 값이 범위를 벗어납니다. (0) | 2023.04.07 |