[ISD_ID] 속성의 다른 테이블에서 선택 항목을 업데이트해야합니다. 어떻게해야합니까? 업데이트, 내가 통해 반복하고 싶습니다 테이블 이름의 세트가 이제여러 테이블에 레코드 속성 업데이트
SELECT c1.TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS c1
INNER JOIN information_schema.COLUMNS c2
ON c1.TABLE_NAME = c2.TABLE_NAME
WHERE c1.COLUMN_NAME LIKE '%isd%id%' and c2.column_name LIKE '%schooldistrict%id%'
:
나는 내가이 문을 찾고 기록을 가지고 테이블 세트를 잡을 수 있습니다 필요에 따라 기록하십시오.
다른 게시물의 제안에 따라 동적 SQL을 읽었습니다. 그래서 나는 EXECUTE IMMEDIATE: ('update' + @tablename + ' set ISD_ID=37 where SchoolDistrictID=46')
과 같은 것을 할 수 있습니다.
내 질문에 대답 : 어떻게 내 테이블 이름을 반복하고 위의 문을 @tablename
변수로 대체하여 각 테이블의 값을 업데이트 할 수 있습니까?
필요한 경우 .NET 및 SSIS를 사용할 수있는 기능이 있습니다.
미리 감사드립니다. 나는 SQL에 익숙하지 않고 배우는 기회를 주셔서 감사합니다. 당신은 문서화되지 않은 저장 프로 시저를 사용할 수 있습니다
, 나는 ** ** 설정 @tablename 줄에서 ** ** 스칼라 변수를 선언해야합니다 오류 : '표 ( Table_nm NVARCHAR (128) NULL ) AS @MyTable 선언 DECLARE의 @tablename = '업데이트'TEXT AS NVARCHAR (128) DECLARE의 @myDynamicSQL AS + @tablename + '로 설정 ISD_ID = SchoolDistrictID = 46 37' WHILE은 (@MyTable FROM Table_nm 을 선택)이 NULL이 아닌 BEGIN SET @tablename = [오류가 발생했습니다 ->] @ MyTable.Table_nm EXECUTE IMMEDIATE @myDynamicSQL 계속 끝 GO' – ElderJedi
@ SebastianVal - 변수에서 Table_nm을 가져와야합니다. 그래서, 이와 같은 것은 작동 할 것입니다 :'SELECT TOP 1 @ tablename = table_nm from @ myTable'. 이제는 @mytable에서 레코드를 삭제할 때주의해야합니다. 또는 카운터를 사용하여 무한 루프를 방지하십시오. – dawebber