메시지 245, 수준 16, 상태 1 나는이UPDATE 테이블 SET의 COL = CONVERT (INT, COL)
UPDATE table
SET col = CONVERT(int, col)
을 시도하고 그리고 난
을 얻고, 2 호선 변환 할 때 실패 varchar 값 '106/1'을 데이터 유형 int로 변환합니다.
메시지 245, 수준 16, 상태 1 나는이UPDATE 테이블 SET의 COL = CONVERT (INT, COL)
UPDATE table
SET col = CONVERT(int, col)
을 시도하고 그리고 난
을 얻고, 2 호선 변환 할 때 실패 varchar 값 '106/1'을 데이터 유형 int로 변환합니다.
메서드에 전달할 인수의 형식을 확인하면 메서드에서 Int 형식의 인수를 요청하지만 해당 예외가 throw되는 이유는 varchar입니다. (NULL을 한 번
안녕하세요. 그것은 당신의 대답을 보여주는 몇 가지 코드를 게시하는 데 도움이됩니다. –
2012+ 경우 TRY_CONVERT()를 사용할 수 있습니다 ... 무효가 반환 int를주는
UPDATE table SET col = TRY_CONVERT(int, col)
그렇지 않은 경우 2012+
UPDATE table SET col = case when isnumeric(col+'.01')=0 then null else CONVERT(int,col) end
편집을 시도 Shnugo가 isnumeric() 트릭을 어젯밤에 배웠습니다)
크레딧을위한 Thx :-) [어젯밤 자신의 isnumeric() 트릭을 배웠습니다 : -)] (@stackoverflow.com/q/40898509/5089204) – Shnugo
@ Shnugo 나는 명예로운 사람이 되려고 노력합니다. 조금 부끄러워서 링크를 추가 할 생각을하지 못했습니다. –
오류에 대해 혼란 스럽습니다. ssage. 당신은'int /'가 아닌'106/1'이라는 값을 테이블에 가지고 있습니다 ... 그것은 문자 그대로 오류 메시지에서 말합니다. 귀하의 데이터를 확인하십시오 ... – Siyual
그냥 호기심. [106 나누기] 또는 [106] 또는 [NULL]을 기대하십니까? –
나는 당신에게 이것에 대한 답을 줬습니다. http://stackoverflow.com/questions/40870435/i-have-column-with-decimals-and-i-want-it-to-make-it-real-number -please-see-belo 'col'을 내가 작성한 case 문으로 바꾸면 작동 할 것이다. –