이 SQL 서버에 2008TSQL : SQL Server에서 숫자 열을 변경하면 값이 어떻게 변환됩니까?
내가 열이 item_amount
라고 예를 들어 내가 varchar
에 money
및 decimal
에서 변환 할 여러 열을 가지고있다.
이 값들은 어떻게 변환됩니까?
convert(varchar, item_amount)
과 같습니까?select item_amount, convert(varchar, item_amount) from <table>
과 같은 쿼리를 실행하면 열이 동일하게 렌더링되므로 기대하고 싶습니다.가능한 절단에서 안전해야합니까? 맞습니까?
varchar
열에 충분한 문자가 있다고 가정합니다 (소수점의 경우 max precision for a decimal column is 38 + 1 문자이므로 39가됩니다). 숫자 값 중 어느 것도 38 자리에 가깝지 않으며, 대부분 3-5 범위에 있습니다.나는이 명령을 테스트 테이블에서 성공적으로 실행했고 나를 괴롭 히거나 잊어 버리지 않을 것임을 확인하고 싶다 :
alter table <mytable> alter column item_amount varchar(39) default '0'
(이것은 기존 기본 ((0)) 제약 조건을 삭제 한 후이다.).
제약 조건의 이름을 지정하는 부작용은 ... varchar (39) 제약 조건 df_tblname_colname default '0'... 당신이 (0)에 대해 가지고 있던 것처럼 깨끗하고 쉽게 삭제되도록 유지합니다. 다른 문제는 십진수/돈이 오른쪽에 0- 채우기와 함께 전체 크기로 확장된다는 것입니다. 그게 당신이 무엇인지 확실하지 않은 경우 – RichardTheKiwi
그레이트 추천! –
본능은 틀리지 않지만 기본적으로 ETL 프로세스에서 가져 오기 준비 테이블입니다. 변환 스크립트는 프로덕션 테이블로 데이터를 이동할 때 convert()를 적절한 숫자 유형으로 수행합니다. –