복붙노트

[SQL] 임시 테이블에서 필드 이름을 검색하는 방법 (SQL 서버 2008)

SQL

임시 테이블에서 필드 이름을 검색하는 방법 (SQL 서버 2008)

나는 SQL Server 2008의 말 나는이 같은 임시 테이블을 만들어 사용하고 있습니다 :

create table #MyTempTable (col1 int,col2 varchar(10))

어떻게 동적으로 필드의 목록을 검색 할 수 있습니까? 나는 이런 식으로 뭔가를보고 싶다 :

Fields:
col1
col2

나는 sys.columns 쿼리의 생각하지만 임시 테이블에 대한 정보를 저장하지 않는 것 같습니다. 어떤 아이디어?

해결법

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

    1.

    select * from tempdb.sys.columns where object_id =
    object_id('tempdb..#mytemptable');
    
  2. ==============================

    2.

    select * 
    from tempdb.INFORMATION_SCHEMA.COLUMNS
    where table_name like '#MyTempTable%'
    
  3. ==============================

    3.INFORMATION_SCHEMA를 사용하고 다른 세션과 충돌하지 않으려면 :

    INFORMATION_SCHEMA를 사용하고 다른 세션과 충돌하지 않으려면 :

    select * 
    from tempdb.INFORMATION_SCHEMA.COLUMNS
    where table_name =
        object_name(
            object_id('tempdb..#test'),
            (select database_id from sys.databases where name = 'tempdb'))
    
  4. ==============================

    4.임시 테이블은 "tempdb에"에 정의되어 있습니다, 테이블 이름은 "엉망"입니다.

    임시 테이블은 "tempdb에"에 정의되어 있습니다, 테이블 이름은 "엉망"입니다.

    이 쿼리는 트릭을 수행해야합니다

    select c.*
    from tempdb.sys.columns c
    inner join tempdb.sys.tables t ON c.object_id = t.object_id
    where t.name like '#MyTempTable%'
    

    즙을 짜고 난 찌꺼기

  5. ==============================

    5.당신도 방법에 따라 그것을 할 수 있습니다 ..

    당신도 방법에 따라 그것을 할 수 있습니다 ..

    create table #test (a int, b char(1))
    
    select * From #test
    
    exec tempdb..sp_columns '#test'
    
  6. ==============================

    6.안토니

    안토니

    하나 아래를보십시오. 그것은 당신의 예상 출력을 줄 것이다

    select c.name as Fields from 
    tempdb.sys.columns c
        inner join tempdb.sys.tables t
     ON c.object_id = t.object_id
    where t.name like '#MyTempTable%'
    
  7. ==============================

    7.

    select * 
    from tempdb.INFORMATION_SCHEMA.COLUMNS 
    where TABLE_NAME=OBJECT_NAME(OBJECT_ID('#table'))
    
  8. from https://stackoverflow.com/questions/756080/how-to-retrieve-field-names-from-temporary-table-sql-server-2008 by cc-by-sa and MIT license