Programing

데이터 손실없이 SQL 데이터베이스에서 열 데이터 유형을 변경하는 방법

lottogame 2020. 5. 14. 07:59
반응형

데이터 손실없이 SQL 데이터베이스에서 열 데이터 유형을 변경하는 방법


나는 SQL Server 데이터베이스가 있고 난 그냥에서 열 중 하나의 유형을 변경할 수 있습니다 실현 intbool.

해당 테이블에 이미 입력 된 데이터를 잃지 않고 어떻게 할 수 있습니까?


다음 명령을 사용하여이 작업을 쉽게 수행 할 수 있습니다. 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);

참고 URL : https://stackoverflow.com/questions/5136013/how-to-change-column-datatype-in-sql-database-without-losing-data

반응형