programing

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

telebox 2023. 7. 16. 13:16
반응형

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

SQL Server 2008을 사용하고 있습니다.다음과 같은 임시 테이블을 만든다고 가정합니다.

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

필드 목록을 동적으로 검색하려면 어떻게 해야 합니까?저는 다음과 같은 것을 보고 싶습니다.

Fields:
col1
col2

sys.columns를 조회하려고 하는데 임시 테이블에 대한 정보가 저장되지 않는 것 같습니다.아이디어 있어요?

select * from tempdb.sys.columns where object_id =
object_id('tempdb..#mytemptable');
select * 
from tempdb.INFORMATION_SCHEMA.COLUMNS
where table_name like '#MyTempTable%'

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'))

임시 테이블은 "tempdb"에 정의되며 테이블 이름은 "mangledb"입니다.

이 쿼리는 다음과 같은 작업을 수행합니다.

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%'

마르크

당신도 방법을 따름으로써 그것을 할 수 있습니다.

create table #test (a int, b char(1))

select * From #test

exec tempdb..sp_columns '#test'

앤서니

아래의 것을 시험해 보세요.그것은 우리의 예상 생산량을 제공할 것입니다.

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%'
select * 
from tempdb.INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME=OBJECT_NAME(OBJECT_ID('#table'))

언급URL : https://stackoverflow.com/questions/756080/how-to-retrieve-field-names-from-temporary-table-sql-server-2008

반응형