2016-08-29 7 views
1

나는 varchar 열만 포함하는 테이블을 가지고 있습니다. 각 필드는 동일한 패턴 ''xxxxx ''를 가지고 있으며 모든 단일 필드에서 선행 및 후행을 정리/정리하고 싶습니다. "모든 필드 (모든 행의 모든 ​​열)에 함수를 적용하는 방법

하나의 열에 대해 수행하는 방법을 알고 있지만 그것을하고 싶습니다. (열 이름의 동적 세트) 동적 방식으로 모든 열

감사

다음
+0

사용 sys.colum ns 당신을 위해 SQL을 생성합니다. –

+0

@SeanLange : SQL dev을 시작할 때 실례를 줄 수 있습니까 – Dave

+0

열 이름 만 또는 데이터를 자르고 싶습니까? – p2k

답변

0

입니다 당신이 할 수있는 한 가지 방법은. 당신이 때문에 슬라이스 상관없이 일부 동적 SQL을 필요로 할 것 없다 열 이름을 동적으로 가져와야합니다.

declare @SQL nvarchar(max) 

select @SQL = 'Update YourTable set ' + STUFF((select ', replace(' + QUOTENAME(c2.name) + ', ''"'', '''')' 
    from sys.columns c2 
    where object_id = object_id('YourTable') 
    order by c2.column_id 
    for xml path('')), 1, 1, '')  
from sys.columns 
where object_id = object_id('YourTable') 
group by object_id 

select @SQL 
--exec sp_executesql @SQL --You can uncomment this when you comfortable with the output 
+0

흥미 보이지만, 내가 그것을 다음과 같은 오류와 함께 실패를 실행하려고하면., 메시지 102, 수준 15, 상태 1 라인 1 근처의 구문이 잘못되었습니다 '(' – Dave

+0

그런 일 전 마지막 줄의 주석 처리를 제거하십시오 – Dave

+0

그래서 문제가 발생 했습니까? –

관련 문제