programing

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

cafebook 2023. 4. 8. 09:13
반응형

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

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)

주의: 열의 크기가 있는 경우 크기만 기입하십시오.

유효한 변경인지 확인합니다.

속성을 변경할 수 있습니다.

도구 --> 옵션 --> 설계자 --> 테이블 및 데이터베이스 설계자 --> 선택 취소 --> 테이블 재작성이 필요한 변경을 저장하지 않도록 합니다.

이제 테이블을 다시 만들거나 레코드를 손실하지 않고 열 이름을 쉽게 변경할 수 있습니다.

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)

데이터가 손실되는 이유는 무엇이라고 생각하십니까?Management Studio로 이동하여 데이터 유형을 변경하기만 하면 됩니다.기존 값을 bool(비트)로 변환할 수 있는 경우 그렇게 합니다.즉, 원래 필드에서 "1"이 true에 매핑되고 "0"이 false에 매핑되면 문제가 없습니다.

Tool-Option-Designers-Table and Database Designers로 이동하여 Prevent save 옵션을 선택여기에 이미지 설명 입력 취소합니다.

저는 sql server 2016에서 이렇게 합니다.

*열 1을 열 2로 이름을 변경하는 방법

EXEC sp_rename 'dbo.T_Table1.Column1', 'Column2', 'COLUMN'

* 열을 변경하려면 문자열에서 int:로 입력하십시오(데이터 형식이 올바른지 확인하십시오).

ALTER TABLE dbo.T_Table1 ALTER COLUMN Column2  int; 

열 데이터 유형을 확인 유형으로 변경합니다.

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

Compact Edition에서는 datetime 데이터 유형의 크기가 자동으로 지정되므로(8) 필드의 크기를 설정하고 이 작업에 대해 오류를 생성할 필요가 없습니다.

다음 쿼리를 사용하여 테이블 필드의 데이터 유형을 수정할 수 있습니다.또한 Oracle DB에서도

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-server-database-without-losing-data

반응형