2017-11-26 1 views
0

SQL Server의 저장 프로 시저에서 SELECT 쿼리로 고유 한 이름의 임시 테이블을 만들려고합니다.SQL Server를 사용하는 저장 프로 시저에서 select 쿼리를 사용하여 임시 테이블을 만드는 구문

예 : 다른 시간대 테이블 이름을 만들려고 할 때마다 선택 쿼리를 실행할 때마다.

두 번째로 테이블 이름이 temptable2이되는 반면, 처음에 선택 쿼리를 실행할 시간은 유추 할 수있는 이름이 temptable1 일 때 처음으로 명확 해졌습니다.

select 쿼리를 실행하고 SQL Server의 저장 프로 시저에서 고유 이름을 사용하여 temptable을 만드는 구문을 알고 싶습니다.

+2

왜 이렇게해야합니까? – gotqn

+0

Bcos 다른 사용자에게 똑같은 유혹을주고 싶습니다. –

답변

1

SQL Server 저장 프로 시저의 컨텍스트에서 엔진은 임시 테이블의 이름 자체를 처리합니다.

동시에 많은 사용자가 동일한 저장 프로 시저를 실행하고 있어도 걱정할 필요가 없습니다. 임시 개체를 공유 할 수 없으며 충돌이 발생하지 않습니다.

또한 다른 이름을 사용하는 저장 프로 시저에서 임시 테이블의 이름을 동적 T-SQL 문을 사용하여 지정할 수 있습니다. 예를 들어 시퀀스를 사용하여 이러한 번호를 가져 와서 테이블 이름에 연결할 수 있습니다. 그러나 그렇게 할 경우 sp_executesql을 사용하여 테이블을 만들고 그 테이블을 사용하여 작업해야합니다. 그런 식으로 다른 저장 프로 시저는 현재 저장 프로 시저에서 만든 테이블을 읽거나 수정할 수 없습니다. 즉, 동적 T-SQL 문을 사용하여 만든 경우 임시 테이블을 루틴과 공유 할 수 없습니다. 그래서, 그런 일을 할 아무런 의미가 없습니다.

관련 문제