복붙노트

[SQL] 나는 여러 테이블에서 같은 열이 있고, 특정 값으로 모든 테이블에서 해당 열을 업데이트 할. 이걸 어떻게 할 수 있습니까?

SQL

나는 여러 테이블에서 같은 열이 있고, 특정 값으로 모든 테이블에서 해당 열을 업데이트 할. 이걸 어떻게 할 수 있습니까?

컬럼은 매우 자명하다 "CreatedDateTime"이다. 이 기록은 커밋 된 어떤 시간을 추적합니다. 나는 100 개 이상의 테이블에서이 값을 업데이트해야 오히려 몇 라인에서 할 복사가 아닌 유일한 차이점은 테이블 이름 인 100 선을 붙여 넣기 할 수있는 멋진의 SQL 트릭을 할 것입니다.

어떤 도움 테이블에서 업데이트 컬럼에 힘든 시간을 찾는 것도 필요, 감사하겠습니다 (어쨌든 이상한 아마 나쁜 관행을, 그리고 그 미안 해요).

감사!

편집 :이 포스팅은 어떻게 열이있는 모든 테이블을 얻는 저를 보여 주었다

나는 지정된 열 이름을 가진 모든 테이블을 표시하려면

경우에 그 어떤 도움입니다. 그것은 어쨌든 나를 위해 시작입니다.

해결법

  1. ==============================

    1.그 한 시간 작업의 경우 복사하여이 쿼리를 실행 및 쿼리 창에 결과를 붙여 실행

    그 한 시간 작업의 경우 복사하여이 쿼리를 실행 및 쿼리 창에 결과를 붙여 실행

    Select 'UPDATE ' + TABLE_NAME + ' SET CreatedDateTime = ''<<New Value>>'' '
    From INFORMATION_SCHEMA.COLUMNS 
    WHERE COLUMN_NAME = 'CreatedDateTime'
    
  2. ==============================

    2.당신은 커서를 사용하여 시도해 볼 수도 있습니다 : 다음과 같이

    당신은 커서를 사용하여 시도해 볼 수도 있습니다 : 다음과 같이

    declare cur cursor for Select Table_Name From INFORMATION_SCHEMA.COLUMNS Where column_name = 'CreatedDateTime'
    declare @tablename nvarchar(max)
    declare @sqlstring nvarchar(max)
    
    open cur
        fetch next from cur into @tablename
        while @@fetch_status=0
        begin
            --print @tablename
    
            set @sqlstring = 'update ' + @tablename + ' set CreatedDateTime = getdate()'
    
            exec sp_executesql @sqlstring
    
            fetch next from cur into @tablename
        end
    
    close cur
    deallocate cur
    
  3. ==============================

    3.당신은 당신을 위해 업데이트 스크립트를 구축하기 위해 INFORMATION_SCHEMA.COLUMNS를 사용할 수 있습니다.

    당신은 당신을 위해 업데이트 스크립트를 구축하기 위해 INFORMATION_SCHEMA.COLUMNS를 사용할 수 있습니다.

        Declare @ColName as nVarchar(100), @NewValue as nVarchar(50) 
        Set @ColName = 'Modified'  -- 'your col name'
        Set @NewValue = '2013-11-04 15:22:31' -- your date time value
        Select 'Update ' + TABLE_NAME + ' set ' + COLUMN_NAME + ' = ''' + @NewValue + '''' From INFORMATION_SCHEMA.COLUMNS Where column_name = 'modified'
    
  4. from https://stackoverflow.com/questions/19797142/i-have-the-same-column-in-multiple-tables-and-want-to-update-that-column-in-all by cc-by-sa and MIT license