원격 연결된 서버에 대해 상당히 복잡한 쿼리를 수행하고 있으며 일부 정보를 임시 테이블에 저장 한 다음 원격 테이블에 대한 조인을 수행하는 것이 유용합니다. 로컬에서 임시 테이블을 만들고 와이어를 통해 임시 테이블을 조인하는 것은 매우 어렵습니다.연결된 서버에서 임시 테이블을 만들 수 있습니까?
강제로 임시 테이블을 원격 서버에 만들 수 있습니까? 내 실제 (영구) 테이블을 만들 충분한 권한이 없다고 가정합니다.
원격 연결된 서버에 대해 상당히 복잡한 쿼리를 수행하고 있으며 일부 정보를 임시 테이블에 저장 한 다음 원격 테이블에 대한 조인을 수행하는 것이 유용합니다. 로컬에서 임시 테이블을 만들고 와이어를 통해 임시 테이블을 조인하는 것은 매우 어렵습니다.연결된 서버에서 임시 테이블을 만들 수 있습니까?
강제로 임시 테이블을 원격 서버에 만들 수 있습니까? 내 실제 (영구) 테이블을 만들 충분한 권한이 없다고 가정합니다.
연결된 원격 서버에 임시 테이블을 직접 만들 수 없습니다. 실제로 연결된 서버에 대해서는 DDL을 사용할 수 없습니다. 연결된 서버를 사용하는 지침 및 제한 사항에 대한 추가 정보를 원하시면
은 다음을 참조하십시오작업 주위에 (그리고 내 머리 위로 떨어져, 이것이에만 경우Guidelines for Using Distributed Queries (SQL 2008 Books Online)
하나 일 것입니다) 원격 서버에 대한 사용 권한을 가지고 그럴 수 : 원격 서버에
적합하지을 완료하면 원격 테이블을 삭제 만합니다.
내 환경에서 SQL 2005 SP3에 연결된 SQL 2005 SP3에서 작동합니다. 그러나 tempdb를 검사하면 테이블이 실제로 원격 인스턴스가 아니라 로컬 인스턴스에 있다는 것을 알 수 있습니다. 나는 이것을 다른 포럼의 결의안으로 보았으며 여러분을 이것으로부터 멀어지게하고 싶었습니다.
create table SecondServer.#doll
(
name varchar(128)
)
GO
insert SecondServer.#Doll
select name from sys.objects where type = 'u'
select * from SecondServer.#Doll
메모리가별로 문제가되지 않으면 임시 테이블 대신 테이블 변수를 사용할 수도 있습니다. Linked Server에 대해 임시 데이터 저장소가 필요한 저장 프로 시저를 실행할 때이 기능이 유용했습니다.
자세한 정보 : 예 : this comparison 테이블 변수 및 테이블 변수의 단점을 포함한 임시 테이블.
예. 연결 기간 동안 만 지속될 수 있습니다. EXECUTE AT 구문을 사용해야합니다.
EXECUTE('SELECT * INTO ##example FROM sys.objects; WAITFOR DELAY ''00:01:00''') AT [SERVER2]
SERVER2에 다음 (1 분) 작동합니다;
SELECT * FROM ##example
로컬 서버에서는 작동하지 않습니다. ## 예제를 사용하는 두 번째 서버에서 트랜잭션을 열면 트랜잭션이 닫힐 때까지 개체가 유지됩니다. 또한 첫 x 째 서 v의 작성 설명을 완료하지 못하게합니다. 즉 server2에서 실행되고 server1의 트랜잭션은 무한정 계속됩니다.
BEGIN TRAN
SELECT * FROM ##example WITH (TABLOCKX)
실용적인 것보다 더 능숙합니다.
나는 2 년 늦게 파티에 모르지만,이 sp_executeSQL
사용하여 원격으로 테이블을 만드는 그것을 동적 쿼리 먹이를 수행 할 수 있습니다.
Exec RemoteServer.RemoteDatabase.RemoteSchema.SP_ExecuteSQL N'Create Table here'
이
은 다음과
단점은 내가 아는 한, 당신은 테이블 변수에 인덱스를 만들 수 있다는 것입니다 .. 원격 위치에있는 임시 테이블 생성을 실행합니다. 당신이 [테이블 변수에 인덱스를 만들 수] 수 있습니다 보인다 – alfoks
(내가 ... 내가 아는 2 년 늦었 어) (http://sqlserverplanet.com/tsql/create-index-on-table-variable). (어느 쪽 인지도 몰랐습니다!) – Josien
좋아요! 공유해 주셔서 감사합니다. 나는 미래에 그것을 염두에 두겠다. – alfoks