2013-04-03 3 views
1

모든 데이터를 모든 테이블 이름에 대해 대문자로 변환하는 방법과 그 테이블의 값을 변환하는 방법을 알고 싶습니다. 데이터에는 int이 포함될 수 있지만 무시합니다. 내가 한 일은 시간이 많이 걸리는 열 1을 수동으로 업데이트하는 것이 었습니다.테이블의 모든 열에 대한 모든 데이터에 대한 SQL Server UPPERCASE

인가가 어떤 문장처럼 :

UPDATE cust SET cust.* = UPPER(cust.*) 

, 당신은 직접하지 않을 수 ~

답변

4

아마도 동적 SQL이 유일한 옵션 일 수 있습니다. 이런 식으로 뭔가가 INFORMATION_SCHEMA.COLUMNS 쿼리 FOR XML을 사용하는 것입니다해야`동적에 대한

declare @query varchar(max) 
set @query = '' 

select @query = 
    STUFF((
    select ';UPDATE ' + table_name + ' SET ' + column_name + ' = UPPER(' + column_name + ')' 
    from INFORMATION_SCHEMA.COLUMNS 
    order by table_name, column_name 
    for xml path('') 
     ), 1, 1, '') 

execute(@query); 

SQL Fiddle Demo

+0

'+ 1' :)' –

2

불행하게도 주셔서 감사합니다. 업데이트해야하는 각 열 이름을 지정해야합니다. 예 :

UPDATE tablename 
SET col = UPPER(col) 
     colN = UPPER(colN) 

그러나 세상 끝은 아닙니다. 여전히 수행 할 수 있지만 동적 SQL.

관련 문제