SQL Server 임시 테이블 및 커서 사용 요약

巴扎黑
풀어 주다: 2017-05-21 18:38:27
원래의
1370명이 탐색했습니다.

이 글은 SQL Server 임시 테이블과 커서 사용법을 주로 소개합니다. 필요한 친구들이 참고할 수 있습니다.

임시 테이블

테이블과 영구 테이블은 유사하지만 임시 테이블은 tempdb에 저장되며 더 이상 사용되지 않으면 자동으로 삭제됩니다.
임시 테이블에는 로컬과 글로벌의 두 가지 유형이 있습니다.

둘의 비교:

로컬 임시 테이블의 이름은 기호(#)로 시작합니다.
현재 사용자 연결이 보이는 경우에만
사용자 인스턴스 연결이 끊어지면 자동으로 삭제됩니다.
전역 임시 테이블의 이름은 기호(##)로 시작합니다.
모든 사용자에게 표시됩니다.
모두인 경우 참조 사용자가 연결을 끊으면 테이블이 자동으로 삭제됩니다
실제로 로컬 임시 테이블은 tempdb에 고유한 이름이 있습니다
예를 들어 하나의 쿼리 분석기에 sa를 사용하여 로그인한 다음 sa를 사용하여 로그인합니다. 다른 쿼리 분석기로

두 쿼리 분석기 모두에서 다음 명령문을 허용합니다.


use pubs
go
select * into #tem from jobs
로그인 후 복사

각각 2명의 사용자를 위한 2개의 로컬 임시 테이블을 생성했습니다
We You 다음 쿼리 문에서


SELECT * FROM [tempdb].[dbo].[sysobjects] 
where xtype='u'
로그인 후 복사

가 임시 테이블의 존재를 확인하는 것을 볼 수 있습니다.


if object_id('tempdb..#tem') is not null 
begin 
 print 'exists' 
end 
else 
begin 
 print 'not exists' 
end
로그인 후 복사
로그인 후 복사
로그인 후 복사

특별 팁:
1. 동적 sql 문에서 생성된 로컬 임시 테이블은 문 실행
후에 자동으로 삭제되므로 다음 문에서는 결과 집합


exec('select * into #tems from jobs')
select * from #tems
로그인 후 복사
로그인 후 복사
로그인 후 복사
<🎜을 가져오지 않습니다. >2. 저장 프로시저에 사용된 임시 테이블은 작업 완료 후 자동으로 삭제되지만

명시적으로 삭제하는 것이 시스템에 유익합니다

ii. 커서

커서에는 로컬과 전역의 두 가지 유형이 있습니다.
로컬 커서: 선언 단계에서만 사용됩니다.
전역 커서: 선언 과정에서 사용할 수 있으며 외부 트리거

존재 여부 판단:



if CURSOR_STATUS(&#39;global&#39;,&#39;游标名称&#39;) =-3 and CURSOR_STATUS(&#39;local&#39;,&#39;游标名称&#39;) =-3 
begin 
 print &#39;not exists&#39; 
end
SELECT * FROM [tempdb].[dbo].[sysobjects] where xtype=&#39;u&#39;
로그인 후 복사
로그인 후 복사

임시 테이블 존재 여부 판단:



if object_id(&#39;tempdb..#tem&#39;) is not null 
begin 
 print &#39;exists&#39; 
end 
else 
begin 
 print &#39;not exists&#39; 
end
로그인 후 복사
로그인 후 복사
로그인 후 복사

Special 팁:

1. 동적 sql 문에서 생성된 로컬 임시 테이블은 문 실행
후에 자동으로 삭제되므로 다음 문에서는 결과 집합


exec(&#39;select * into #tems from jobs&#39;)
select * from #tems
로그인 후 복사
로그인 후 복사
로그인 후 복사
<🎜을 가져오지 않습니다. >2. 저장 프로시저에 사용된 임시 테이블은 작업 완료 후 자동으로 삭제되지만

명시적으로 삭제하는 것이 시스템에 유익합니다


ii. 커서

커서에는 로컬과 전역의 두 가지 유형이 있습니다.

로컬 커서: 선언 단계에서만 사용됩니다.
전역 커서: 선언 과정에서 사용할 수 있으며 외부 트리거

존재 여부 판단:


if CURSOR_STATUS(&#39;global&#39;,&#39;游标名称&#39;) =-3 and CURSOR_STATUS(&#39;local&#39;,&#39;游标名称&#39;) =-3 
begin 
 print &#39;not exists&#39; 
end
SELECT * FROM [tempdb].[dbo].[sysobjects] where xtype=&#39;u&#39;
로그인 후 복사
로그인 후 복사

임시 테이블 존재 여부 판단:

if object_id(&#39;tempdb..#tem&#39;) is not null 
begin 
 print &#39;exists&#39; 
end 
else 
begin 
 print &#39;not exists&#39; 
end
로그인 후 복사
로그인 후 복사
로그인 후 복사

특별 팁:

1. 동적 sql 문에서 생성된 로컬 임시 테이블은 문 실행

후에 자동으로 삭제되므로 다음 문에서는 결과 집합


exec(&#39;select * into #tems from jobs&#39;)
select * from #tems
로그인 후 복사
로그인 후 복사
로그인 후 복사
<🎜을 가져오지 않습니다. >2. 저장 프로시저에 사용된 임시 테이블은 작업 완료 후 자동으로 삭제되지만
명시적으로 삭제하는 것이 시스템에 유익합니다

ii. 커서
커서에는 로컬과 전역의 두 가지 유형이 있습니다.

로컬 커서: 선언 단계에서만 사용됩니다.

전역 커서: 선언 과정에서 사용할 수 있으며 외부 트리거

존재 판단:


if CURSOR_STATUS(&#39;global&#39;,&#39;游标名称&#39;) =-3 and CURSOR_STATUS(&#39;local&#39;,&#39;游标名称&#39;) =-3 
begin 
 print &#39;not exists&#39; 
end
로그인 후 복사

위 내용은 SQL Server 임시 테이블 및 커서 사용 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿