select tbl.name from ( select id, name from sysobjects where xtype = 'U' ) tbl
select * from sysobjects where xtype = 'U'
select a.name, tbl.name from syscolumns a join sysobjects tbl on a.id = tbl.id
where a.id in( select id from sysobjects where xtype = 'U' )
--커서 선언
DECLARE moneta_replace CURSOR
FOR
select tbl.name, a.name from syscolumns a join sysobjects tbl on a.id = tbl.id
where a.id in( select id from sysobjects where xtype = 'U' )
--커서 오픈
OPEN moneta_replace
--변수 선언
DECLARE @v_tblname VARCHAR(100)
DECLARE @v_fieldname VARCHAR(100)
DECLARE @SSQL VARCHAR(200)
--첫 로우 FETCH
FETCH NEXT FROM moneta_replace INTO @v_tblname, @v_fieldname
-- @@FETCH_STATUS 는 행 반입상태
-- 0 : 성공적이다.
-- -1 : FETCH 문은 실패했거나, 행이 결과 집합의 범위를 벗어났다.
-- -2 : 반입된 행이 없다.
WHILE @@FETCH_STATUS = 0
BEGIN
--FETCH된 데이터를 tempdb에 삽입
SET @SSQL = ' UPDATE ' + @v_tblname + ' SET ' + @v_fieldname + ' = replace('+@v_fieldname+','''','''') '
SELECT @SSQL
-- EXECUTE SP_EXECUTESQL @SSQL
--다음 로우 FEETCH - 루프
FETCH NEXT FROM moneta_replace INTO @v_tblname, @v_fieldname
END
--커서 CLOSE
CLOSE moneta_replace
--커서 DEALLOCATE
DEALLOCATE moneta_replace
GO
Posted by 홍반장