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_rename (Transact-SQL)
귀하의 경우에는 다음과 같습니다.
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, 수준 11, 상태 1, 프로 시저 sp_rename, 줄 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';
이미 내장 된 함수를 사용하는 것이 좋은 제안이지만 다른 방법은 다음과 같습니다.
- 동일한 데이터 유형과 새 이름으로 새 열을 만듭니다.
- UPDATE / INSERT 문을 실행하여 모든 데이터를 새 열에 복사합니다.
- 이전 열을 삭제하십시오.
The benefit behind using the sp_rename
is that it takes care of all the relations associated with it.
From the documentation:
sp_rename automatically renames the associated index whenever a PRIMARY KEY or UNIQUE constraint is renamed. If a renamed index is tied to a PRIMARY KEY constraint, the PRIMARY KEY constraint is also automatically renamed by sp_rename. sp_rename can be used to rename primary and secondary XML indexes.
You can use sp_rename
to rename a column.
USE YourDatabase;
GO
EXEC sp_rename 'TableName.OldColumnName', 'NewColumnName', 'COLUMN';
GO
The first parameter is the object to be modified, the second parameter is the new name that will be given to the object, and the third parameter COLUMN informs the server that the rename is for the column
, and can also be used to rename tables
, index
and alias data type
.
Since I often come here and then wondering how to use the brackets, this answer might be useful for those like me.
EXEC sp_rename '[DB].[dbo].[Tablename].OldColumnName', 'NewColumnName', 'COLUMN';
- The
OldColumnName
must not be in[]
. It will not work. - Don't put
NewColumnName
into[]
, it will result into[[NewColumnName]]
.
Sql Server management studio has some system defined Stored Procedures(SP)
One of which is used to rename a column.The SP is sp_rename
Syntax: sp_rename '[table_name].old_column_name', 'new_column_name'
For further help refer this article: sp_rename by Microsoft Docs
참고 : 이 SP를 실행하면 SQL 서버는 ' 주의 : 개체 이름의 일부를 변경하면 스크립트와 저장 프로 시저가 손상 될 수 있습니다. '라는주의 메시지가 표시됩니다 . 이는 열을 포함하는 고유 한 sp를 작성한 경우에만 중요합니다. 테이블에서 변경하려고합니다.
@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 Management Studio의 열을 두 번 천천히 클릭하고 UI를 통해 이름을 바꿀 수 있습니다.
참고 URL : https://stackoverflow.com/questions/16296622/rename-column-sql-server-2008
'Nice programing' 카테고리의 다른 글
줄 번호를 적게 (GNU)로 표시하는 방법은 무엇입니까? (0) | 2020.10.02 |
---|---|
계속하기 전에 쉘 스크립트를 잠시 일시 중지하려면 어떻게합니까? (0) | 2020.10.02 |
프로그래밍 방식으로 ImageView 너비와 높이를 설정 하시겠습니까? (0) | 2020.10.02 |
Java 8에서 map과 flatMap 메소드의 차이점은 무엇입니까? (0) | 2020.10.02 |
Django 뷰에서 2 개 이상의 쿼리 셋을 결합하는 방법은 무엇입니까? (0) | 2020.10.02 |