데이터 손실없이 SQL 데이터베이스에서 열 데이터 유형을 변경하는 방법
나는 SQL Server 데이터베이스가 있고 난 그냥에서 열 중 하나의 유형을 변경할 수 있습니다 실현 int
에 bool
.
해당 테이블에 이미 입력 된 데이터를 잃지 않고 어떻게 할 수 있습니까?
다음 명령을 사용하여이 작업을 쉽게 수행 할 수 있습니다. 0의 값은 0 (BIT = false)으로 바뀌고 다른 값은 1 (BIT = true)로 바뀝니다.
ALTER TABLE dbo.YourTable
ALTER COLUMN YourColumnName BIT
다른 옵션은 유형의 새 열을 만들고 BIT
이전 열에서 채우고, 완료되면 이전 열을 삭제하고 새 열의 이름을 이전 이름으로 바꾸는 것입니다. 이렇게하면 변환 중 무언가 잘못되면 여전히 모든 데이터를 가지고 있기 때문에 언제든지 되돌아 갈 수 있습니다.
ALTER TABLE tablename
ALTER COLUMN columnname columndatatype(size)
참고 : 열 크기가 있으면 크기도 쓰십시오.
유효한 변경 인 경우
속성을 변경할 수 있습니다.
도구-> 옵션-> 디자이너-> 테이블 및 데이터베이스 디자이너-> 선택 취소-> 테이블 재 작성에 필요한 변경 사항 저장 방지.
이제 테이블을 다시 만들거나 ur 레코드를 잃지 않고도 열 이름을 쉽게 변경할 수 있습니다.
왜 데이터가 손실 될 것이라고 생각하십니까? 간단히 Management Studio로 이동하여 데이터 유형을 변경하십시오. 기존 값을 부울 (비트)로 변환 할 수 있으면 그렇게됩니다. 다시 말해, 원래 필드에서 "1"이 true로 매핑되고 "0"이 false로 매핑되면 문제가 없습니다.
T-SQL (MSSQL)을 사용하는 경우; 이 스크립트를 시도해야합니다.
ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5)
MySQL을 사용한다면; 이 스크립트를 시도해야합니다.
ALTER TABLE [Employee] MODIFY COLUMN [Salary] NUMERIC(22,5)
Oracle을 사용하는 경우 이 스크립트를 시도해야합니다.
ALTER TABLE [Employee] MODIFY [Salary] NUMERIC(22,5)
도구 옵션 디자이너 테이블 및 데이터베이스 디자이너로 이동하여 저장 방지 옵션을 선택 취소하십시오.
확인 유형의 열로 열 데이터 유형 변경 :
IF EXISTS(
SELECT 1
FROM sys.columns
WHERE NAME = 'YourColumnName'
AND [object_id] = OBJECT_ID('dbo.YourTable')
AND TYPE_NAME(system_type_id) = 'int'
)
ALTER TABLE dbo.YourTable ALTER COLUMN YourColumnName BIT
나를 위해, SQL Server 2016에서 다음과 같이합니다.
* 열 1을 열 2로 이름을 바꾸려면
EXEC sp_rename 'dbo.T_Table1.Column1', 'Column2', 'COLUMN'
* 열 유형을 문자열 에서 int로 수정하려면 :( 데이터가 올바른 형식인지 확인하십시오 )
ALTER TABLE dbo.T_Table1 ALTER COLUMN Column2 int;
컴팩트 에디션에서는 날짜 시간 데이터 유형 (8)의 크기를 자동으로 가져 오기 때문에 필드 크기를 설정 하고이 작업에 오류를 생성 할 필요가 없습니다 ...
다음 쿼리를 사용하여 테이블 필드의 데이터 유형을 수정할 수 있습니다.
ALTER TABLE table_name
MODIFY column_name datatype;
데이터 손실없이 데이터 유형 교체
alter table tablename modify columnn newdatatype(size);
'Programing' 카테고리의 다른 글
파이썬에서 max-heap 구현에 무엇을 사용합니까? (0) | 2020.05.15 |
---|---|
최근 SVN 로그 항목은 어떻게 보입니까? (0) | 2020.05.15 |
이름이 주어진 클래스의 모든 서브 클래스를 찾는 방법은 무엇입니까? (0) | 2020.05.14 |
커밋 후 .gitignore (0) | 2020.05.14 |
“set -e”의 효과를 취소하여 명령이 실패 할 때 bash를 즉시 종료하는 방법은 무엇입니까? (0) | 2020.05.14 |