2014-04-01 4 views
0

200 개 이상의 열이있는 테이블이 있습니다. 나는 텍스트 파일의 도움으로 테이블을 채우고있다. 데이터가 테이블에 성공적으로 삽입됩니다.테이블의 열에 값이 있는지 확인하십시오.

내 문제는 텍스트 파일의 특정 값이 테이블에 존재하는지 확인하고 싶습니다. 나는 당신 중 일부는 당신이 코드에서 열 이름을 매핑 할 수 있음을 확인하고 열 이름을 사용하고 다음과 같이 확인할 수 있습니다 말할 수 있음을 알고

select 1 from table_name where column_name like '%value%' 

하지만 코드에 대한 액세스를 필요 없다 . 방금 텍스트 파일과 데이터베이스가 있습니다. 그래서 데이터베이스의 값만 확인해야합니다. 지루하고 길다는 한 가지 방법은 하나 하나씩 200 열씩 이동 한 다음 위와 같이 실행하는 것입니다. 다른 방법이 있습니까?

+0

(200 개)의 고유 값을 사용하여 텍스트 파일에서 단일 행을 가진 테이블 작성을 다시 실행합니다. 입력 된 열을 텍스트 파일에서 데이터베이스의 출력 열로 매핑 할 수 있습니다. – dav1dsm1th

답변

0

어떤 유형의 파일입니까? SQL 데이터 임포터를 사용하여 파일을 새 테이블로 가져올 수 있습니다. 새 테이블을 만들면 두 테이블 모두에 INNER JOIN을 사용하여 데이터 세트를 비교할 수 있습니다.

0

정확하게 이해하면 200 개의 열이있는 표가 있습니다. 이 테이블에서 텍스트 파일의 일부 데이터를 넣습니다. 즉, x 개의 행이 텍스트 파일의 크기에 따라 해당 테이블에 채워짐을 의미합니다.

이제 테이블에서 특정 값을 찾고 싶습니다.

SQL에 익숙하지 않다면 SQL locator과 같은 도구를 사용해 볼 수 있습니다.

+0

네, 올바르게 입력했는데이 상황에서 SQL Locator를 어떻게 사용할 수 있는지 설명 할 수 있습니까? –

+0

도구를 사용하여 전체 데이터베이스 또는 특정 테이블의 특정 값을 검색 할 수 있습니다. 내가 기억 하듯이 도구의 설정은 매우 간단합니다. – user2110298

0

테이블에 따라 200 개의 이상한 스크립트를 생성하는 것은 어떻습니까? 스크립트가 유용 할 수 있습니다 아래의

With Sample_CTE as (
select a.TABLE_NAME,b.COLUMN_NAME from INFORMATION_SCHEMA.TABLES a inner join 
    INFORMATION_SCHEMA.COLUMNS b on a.TABLE_NAME = b.TABLE_NAME and a.TABLE_NAME = 'MYTABLENAME') 
    SELECT 'SELECT TABLE_NAME,COLUMN_NAME from ' + TABLE_NAME + ' where '+ COLUMN_NAME +' like ''%value%''' from Sample_CTE 
+0

나는 이것을 점검 할 것이다! –

0

이 당신에게 참/거짓 결과를 제공합니다 :

DECLARE @tablexml XML = (SELECT * FROM yourtable FOR XML PATH('')) 
SELECT @tablexml.query('//*="valuetosearchfor"') 
관련 문제