programing

영구 테이블과 동일한 열과 유형을 가진 임시 테이블을 생성하는 가장 좋은 방법

iphone6s 2023. 4. 17. 21:31
반응형

영구 테이블과 동일한 열과 유형을 가진 임시 테이블을 생성하는 가장 좋은 방법

영구 테이블과 동일한 열과 유형을 가진 임시 테이블을 만들어야 합니다.이 작업을 수행하는 가장 좋은 방법은 무엇입니까? (영구 테이블에는 100개 이상의 열이 있습니다.)

예.

저는 보통 이렇게 테이블을 만듭니다.

DECLARE  #TT TABLE(              
  member_id INT,    
  reason varchar(1),    
  record_status varchar(1) ,    
  record_type varchar(1)    
 ) 

그러나 컬럼 이름과 타입을 언급하지 않고 필요한 컬럼이 있는 다른 테이블의 이름을 언급할 수 있는 방법은 없을까?

select top 0 *
into #mytemptable
from myrealtable

이 질문은 매우 오래된 것이지만 Postgre만의 솔루션을 찾고 계신 분들을 위해SQL은 다음과 같습니다.

CREATE TEMP TABLE tmp_table AS SELECT * FROM original_table LIMIT 0;

임시 테이블은 pg_temp_3과 같은 스키마에 배치됩니다.

그러면 모든 열(인덱스 없음)과 데이터가 없는 임시 테이블이 생성되지만 필요에 따라 기본 키를 삭제할 수도 있습니다.

ALTER TABLE pg_temp_3.tmp_table DROP COLUMN primary_key;

원래 테이블에 처음부터 데이터가 없는 경우 "LIMIT 0"을 사용할 수 없습니다.

이것은 MySQL에 고유한 답변으로, 다른 곳에서 동작하는지 확실하지 않습니다.

다음과 같은 열 정의를 가진 빈 테이블을 만들 수 있습니다.

CREATE TEMPORARY TABLE temp_foo LIKE foo;

또한 다음과 같은 방법으로 기존 테이블의 채워진 복사본을 만들 수 있습니다.

CREATE TEMPORARY TABLE temp_foo SELECT * FROM foo;

다음 내용은 포스트그레스에서 동작합니다.불행히도 여기에서는 다른 RDBMS는 그다지 일관성이 없는 것 같습니다.

CREATE TEMPORARY TABLE temp_foo AS SELECT * FROM foo;

좀...

select top 0 * into #temptable from mytable

참고: 이렇게 하면 temp의 빈 복사본이 생성되지만 기본 키는 생성되지 않습니다.

select * into #temptable from tablename where 1<>1

SQL Server에서 임시 테이블 구조를 새 물리적 테이블로 복제

여기에 이미지 설명 입력

SQL Server에서 임시 테이블 구조를 새로운 물리 테이블로 복제하는 방법에 대해 알아보겠습니다.이는 Azure SQL DB와 온프레미스 모두에 적용됩니다.

데모 SQL 스크립트

IF OBJECT_ID('TempDB..#TempTable') IS NOT NULL
    DROP TABLE #TempTable;

SELECT 1 AS ID,'Arul' AS Names
INTO
#TempTable;

SELECT * FROM #TempTable;

방법 1

SELECT * INTO TempTable1 FROM #TempTable WHERE 1=0;

EXEC SP_HELP TempTable1;

여기에 이미지 설명 입력

방법 2

SELECT TOP 0 * INTO TempTable1 FROM #TempTable;

EXEC SP_HELP TempTable1;

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/9206433/best-way-to-create-a-temp-table-with-same-columns-and-type-as-a-permanent-table

반응형