2012-07-05 3 views
1

나는 데이터베이스 파일을 Excel 파일로 채우고 체크 아웃 한 후에 많은 열에서 오류가 있음을 확인했다.SQL Server에서 전체 열에서 단어를 삭제하는 방법은 무엇입니까?

인터넷에서 체크 아웃하며 여러 줄로 된 셀을 삽입 할 때 Excel의 버그입니다. 이제는 많은 열에 "x000D"이라는 단어가 있습니다.

전체 데이터베이스에서 sql을 사용하여 쿼리를 삭제할 수 있습니까?

답변

2

, 당신은

를 통해 데이터베이스 (그들의 표) 당신에게 모든 열을 줄 것이다 INFORMATION_SCHEMA.COLUMNS보기를 반복 절차를 만들어야합니다. 당신은 루프

UPDATE <MYTABLE> SET <MYCOLUMN> = REPLACE(<MYCOLUMN>, 'x000D', '') 

에서 같은 쿼리를 작성하고 실행하여 열 DATA_TYPE (당신은 예를 들어, 정수 열을 업데이트 할 필요가 없습니다) 동적 SQL과 다음

를 확인할 수 있습니다.

편집

빨리, 너무 깨끗하지, proc 디렉토리에 저장하지 않고, 당신이 입력 할 수 있습니다 SQL 서버 관리 스튜디오 :

SELECT 'UPDATE ' 
+ c.TABLE_NAME 
+ ' SET ' 
+ c.COLUMN_NAME 
+ ' =REPLACE(' + c.COLUMN_NAME + ', ''x000D'', '''');' 
FROM INFORMATION_SCHEMA.COLUMNS c 
WHERE c.DATA_TYPE = 'nvarchar' // or IN (<the types you wanna correct>) 

당신은 결과를 복사하여 실행, 당신은있어 끝난.

1

이 작업을 수행 할 수 있습니다

update MyTable -- <<=== Your table name 
set myColumn = null -- <<=== Your column name 
where myColumn='x000D' 

이 쿼리는 x000D로 설정되어 모든 행에 myColumn의 값 x000D을 취소합니다. 모든 데이터베이스에서이 작업을 수행 싶다면

0

수정 된 xls로 테이블을 다시 트렁킹하고 다시로드 할 수 있습니다.

관련 문제