나는 SQL Server 데이터베이스가 있고 난 그냥에서 열 중 하나의 유형을 변경할 수 있습니다 실현 int
에 bool
.
해당 테이블에 이미 입력 된 데이터를 잃지 않고 어떻게 할 수 있습니까?
나는 SQL Server 데이터베이스가 있고 난 그냥에서 열 중 하나의 유형을 변경할 수 있습니다 실현 int
에 bool
.
해당 테이블에 이미 입력 된 데이터를 잃지 않고 어떻게 할 수 있습니까?
답변:
다음 명령을 사용하여이 작업을 쉽게 수행 할 수 있습니다. 0의 값은 0 (BIT = false)으로 바뀌고 다른 값은 1 (BIT = true)로 바뀝니다.
ALTER TABLE dbo.YourTable
ALTER COLUMN YourColumnName BIT
다른 옵션은 유형의 새 열을 만들고 BIT
이전 열에서 채우고, 완료되면 이전 열을 삭제하고 새 열의 이름을 이전 이름으로 바꾸는 것입니다. 이렇게하면 변환 중 무언가 잘못되면 여전히 모든 데이터를 가지고 있기 때문에 언제든지 되돌아 갈 수 있습니다.
NULL
남아 NULL
, 0
하게 False
, 비 - 제로 값 (1, -1, 1999, -987은 ...)가 True
.
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)
데이터 손실없이 데이터 유형 교체
alter table tablename modify columnn newdatatype(size);