데이터 손실 없이 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
'programing' 카테고리의 다른 글
HTML5에 플로트 입력 타입이 있나요? (0) | 2023.04.08 |
---|---|
PowerShell 및 -contains 연산자 (0) | 2023.04.08 |
명령 프롬프트에서 PowerShell 스크립트로 부울 값을 전달하는 방법 (0) | 2023.04.08 |
HTML Agility 팩 사용 방법 (0) | 2023.04.08 |
PowerShell에서 여러 파라미터를 하나의 함수로 전달하려면 어떻게 해야 합니까? (0) | 2023.04.08 |