2012-12-03 32 views
6

Tôi đã xem tất cả các tham chiếu về cách truy vấn hai bảng khác nhau trên hai máy chủ SQL khác nhau và tôi hiểu cách thực hiện. Tuy nhiên, lệnh này dường như không hoạt động với các bảng tạm thời được tạo bằng ##.Truy vấn bảng tạm thời trên máy chủ được liên kết

Nếu tôi viết một tham gia trên một máy chủ và tham chiếu một bảng tạm thời trên máy chủ đó và một bảng tạm thời trên máy chủ khác, SQL Server giả định rằng vì ## nằm trong lệnh, nó sẽ tự động xem xét cục bộ tempdb của máy chủ, không phải máy chủ từ xa. Tôi cũng không thể sử dụng OPENROWSET vào lúc này vì tính năng này đã bị tắt và tôi phải được chấp thuận để bật lại tính năng này.

Vì vậy, câu hỏi của tôi là có một cách mà tôi có thể cấu hình lại lệnh này để nhận ra tempdb nào để xem?

SELECT * 
FROM (##mytemptable1 Demog 
INNER JOIN MyServer.tempdb.dbo.##mytemptable2 PeakInfo ON (Demog.SAMPLE_NO = PeakInfo.SampleNum) AND (Demog.JOB_NO = PeakInfo.JobNum)) 
ORDER BY PeakInfo.JobNum, PeakInfo.SampleNum, PeakInfo.Replicate ,PeakInfo.Reinjection ,PeakInfo.PeakNameCustSort 
+0

là bảng tạm thời từ xa tạo ra bởi một quá trình riêng biệt, hoặc một cùng đó là gia nhập chúng lại với nhau? –

Trả lời

0

MSDN http://msdn.microsoft.com/en-us/library/ms186986(v=sql.105).aspx nói rằng các bảng tạm thời toàn cầu có thể nhìn thấy chỉ trên dụ cụ thể của SQL Server:

bảng tạm thời toàn cầu có thể nhìn thấy bất kỳ người dùng và bất kỳ kết nối sau khi được tạo ra, và bị xóa khi tất cả người dùng đang tham chiếu đến ngắt kết nối bảng khỏi phiên bản SQL Server.

Ngoài ra, bất kỳ hành động thực hiện trên kết quả bảng temp toàn cầu từ xa trong một thông báo lỗi rõ ràng:

SELECT * FROM LinkedServerName.TempDB.dbo.##GLOBTABLE 

Database name 'TempDB' ignored, referencing object in tempdb.

Hình như câu trả lời là không có, không có (dễ dàng) cách.

13

thử này để truy vấn bảng temp toàn cầu từ máy chủ liên kết

SELECT * FROM OPENQUERY(linkedServerName, 'SELECT * FROM ##temp') 
+2

Tôi có thể xác minh điều này hoạt động, không chắc chắn nếu OP có quyền truy cập vào OpenQuery mặc dù kể từ khi OpenRowSet bị vô hiệu hóa. – scw

Các vấn đề liên quan