2013-01-21 6 views
0

테이블 이름을 모른 채 데이터베이스에서 모든 테이블의 데이터를 가져와야하는 작업을하고 있습니다. 내가 할 계획은 쿼리를 작성하여 모든 테이블 이름과 열 이름을 가져 와서 임시 테이블에 저장하는 것입니다.임시 테이블 열에 변수 할당

테이블 이름과 열 이름을 얻은 후에는 @Table_Name@Column_Name과 같은 변수에 값을 저장해야합니다. 그럼 난 루프 내에서 테이블 이름을 호출하고이

"select * from '''[email protected]_Name+''' where '''[email protected]_Name+''' = 1" 

이전 내가 값을 가져오고 변수에 저장하고 루프 내에서 전화를 cursor을 예전처럼 쿼리를 작성해야합니다. 그러나 커서가 더 많은 시간과 메모리를 소비하고있는 것 같습니다. 그래서 임시 테이블을 사용하여 변경하는 방법을 생각했습니다.

임시 테이블 값을 변수에 할당하여 나중에 사용할 수 있습니까? 가능한 경우 어떻게해야합니까?

+0

이 쿼리는 어떻게 의미가 있습니까? 많은 테이블의 '컬럼'값은'int'로 변환 될 수 없지만'WHERE' 절은 이러한 시도가 강제 될 것입니다. –

+0

방금 ​​예를 들어 col_val '1'에 대해 언급했습니다. 실제 열 값은 nvarchar에서 선언됩니다 – Udhay

+0

열 이름은 항상 EngUID 또는 EngID와 같은 nvarchar 값과 같습니다. 테이블 이름은 변경되는 테이블 이름입니다. 내가 대답했을 때 미안 나는 UR 질문에 대한 명확한 wasnt., – Udhay

답변

0

SQL Server에 배열의 개념을 통합하려고 했으므로 아이디어가 작동하지 않을 수 있습니다. SQL Server에는 배열이 없지만 테이블이 있습니다. 임시 테이블을 작성하여 필요한 데이터를 얻을 수 있습니다. select * from sys.tables과 같은 검색어를 실행하여 입력합니다. 그런 다음이 테이블의 각 행을로드하여 조작을 시도하십시오. 작업이 끝나면 반드시 테이블을 떨어 뜨리십시오.