2017-12-13 5 views
1

받기 :이 같은 임시 테이블에 CSV를로드하고있어 SQL 서버 임시 테이블 열 유형

select * 
into #Temp 
from openrowset('Microsoft.ACE.OLEDB.12.0', 
       'Text;Database=D:\DataFolder;', 
       'SELECT * from [DataFile.csv]') as x; 

OLEDB 드라이버가 각 열에 대한 유형을 결정합니다.

그러나 임시 테이블은 INFORMATION_SCHEMA.COLUMNS에 표시되지 않습니다.

결과 #Temp 테이블의 각 열에 대한 데이터 형식을 어떻게 확인할 수 있습니까?

답변

2

아래 코드는 모든 열에 대한 정보를 얻는 방법을 보여줍니다. [tempdb]에서 테이블 이름은 밑줄이 많은 "____"입니다. 따라서 "LIKE __ %"로 액세스해야하지만 작동해야합니다.

보너스로 행 수를 얻기위한 코드를 추가했습니다.

참고로 나는 보통 "SELECT INTO .."를 누른 다음 테이블을 스크립트 아웃하고 수동으로 임시 테이블을 만듭니다. 그러나 아래 코드는 원하는대로 작동합니다.

CREATE TABLE #test 
    (
     [id]  INT 
     , [name] NVARCHAR(12) 
); 


-- 
-- get columns and types 
------------------------------------------------- 
SELECT [columns].[name] 
     , [types].[name] 
     , [columns].* 
     , [types].* 
FROM [tempdb].[sys].[columns] AS [columns] 
     JOIN [tempdb].[sys].[tables] AS [tables] 
     ON [tables].[object_id] = [columns].[object_id] 
     JOIN [sys].[types] AS [types] 
     ON [types].[user_type_id] = [columns].[user_type_id] 
WHERE [tables].[name] LIKE N'#test__%'; 


-- 
-- get row count 
------------------------------------------------- 
SELECT [objects].[name]      AS [table] 
     , [dm_db_partition_stats].[row_count] AS [row_count] 
     , * 
FROM [tempdb].[sys].[dm_db_partition_stats] AS [dm_db_partition_stats] 
     INNER JOIN [tempdb].[sys].[objects] AS [objects] 
       ON [dm_db_partition_stats].[object_id] = [objects].[object_id] 
WHERE [objects].[name] LIKE '#test%'; 
+0

매우 좋습니다! 이제 SSMS에서 많은 작업을 해왔고 #test와 같은 임시 테이블을 정의한 곳에서 여러 개의 창/연결이 열려 있다고 가정합니다. 현재 창 인스턴스로 범위를 지정하는 확실한 방법이 있습니까? (아니면 별도의 질문으로 게시해야합니까?) – feetwet

+0

사실 내 github 저장소에 대한 프레젠테이션을 작성하고 해당 문제와 관련이있는 링크 인을 의미합니다. 당신이 제안하는 것을 시도하고 그 결과에 놀라십시오. 또한 부모 프로 시저에 로컬 임시 테이블을 만든 다음 하위 프로 시저에서 로컬 임시 테이블을 만들고 자식 프로 시저에서 덮어 씁니다. 결과는 기대했던 것과 다릅니다. 그러나 이것은이 질문의 범위를 넘어서고 있습니다. –

+1

나는 로컬 임시 테이블 (상속 행위)에 관해 내가 가지고있는 것을 github에서 꺼냈다. 관심이 있다면 언급 한 시나리오를 단계별로 진행할 수 있어야합니다. 이 부작용 문제는 절대로 사용하지 않는 것이 좋지만 유의해야합니다. https://github.com/KELightsey/chamomile/tree/master/presentation/temp_table_scoping –