2013-05-13 43 views
5

Có thể kết nối với một Máy chủ SQL khác bằng truy vấn SQL (để người dùng cũng có thể chạy truy vấn trên máy chủ đó và sử dụng bộ kết quả trong máy chủ hiện tại). Nếu không, thì tại sao?Kết nối với một Máy chủ SQL khác thông qua Truy vấn SQL?

+0

Câu trả lời ngắn gọn cho điều này là không, và bởi vì bạn không thể. Bạn có thể cung cấp thêm một chút chi tiết về những gì bạn đang cố gắng làm không, có thể sau đó mọi người có thể giúp ích nhiều hơn. – Will

+0

@Will - Tôi đang tìm một truy vấn SQL, trong đó bạn có thể đặt IP, tên người dùng, mật khẩu, vv của máy chủ SQL từ xa và truy vấn cơ sở dữ liệu trên máy tính cục bộ của bạn mà không phải nhập tất cả những thứ đó vào studio quản lý và . –

+0

Là một sang một bên, tôi tự hỏi, nếu oracle, db2 và mysql vv có một tính năng tương tự. –

Trả lời

1

Máy chủ Microsoft SQL chỉ:

Có, có thể. Bạn phải cấu hình Microsoft SQL Server được liên kết. Dưới đây là các thông tin: http://msdn.microsoft.com/en-us/library/ms188279.aspx

Một khi bạn đã máy chủ của bạn được cấu hình, truy vấn của bạn (trên server1) sẽ trông giống như sau:

SELECT TOP 10 * FROM server2.yourdatabase.yourschema.yourtable 
+0

Điều này hoạt động trong MSSQL. Tôi thích sử dụng 'openquery' hoặc tên máy chủ được liên kết trong các câu lệnh EXEC như' EXEC ('Chọn * FROM ABC') AT LinkdedServerName'. Không biết, nếu bạn đang cú pháp đang làm việc, nếu bạn đang sử dụng một cơ sở dữ liệu mssql với một cơ sở dữ liệu mysql thông qua ODBC. –

+0

Tôi chỉ thử điều này trong MS SQL Server. Tôi sẽ cập nhật câu trả lời của mình. – Eugene

+0

Truy vấn này có hoạt động để truy cập máy chủ từ xa không? Trong câu trả lời của bạn, là "server2" chuỗi kết nối cho máy chủ 2? –

4

Có, bạn có thể thực hiện kết nối với một SQL Server bằng cách sử dụng một liên kết server, hoặc bạn có thể truy vấn thông qua các máy chủ bằng cách sử dụng OPENQUERY:

SELECT * FROM openquery([aa-db-dev01], 'Select * from TestDB.dbo.users')

Querying a linked sql server

-1

Điều này hoạt động trong SQL 2012. Hiển thị trong một hộp màu xám Phải chạy trước khi SQL được chạy trên máy chủ khác, mã khác chạy trên đó máy chủ/cơ sở dữ liệu mà cửa sổ truy vấn được kết nối. Các biến cục bộ như @@ ​​Servername và SERVERPROPERTY trả lại kết quả tương tự như máy chủ được kết nối. Đó là darn bất ngờ !!!!

: Kết nối servername

Ví dụ chạy từ SQLTEST

SELECT CONVERT(sysname, SERVERPROPERTY('servername')); 

:Connect CSQL2008 

SELECT CONVERT(sysname, SERVERPROPERTY('servername')); 

SELECT CONVERT(sysname, SERVERPROPERTY('servername')); 

Tạo:

CSQL2008 

CSQL2008 

CSQL2008 

Trong khi

select distinct(server_name) from msdb.dbo.backupset 
go 

:Connect CSQL2012 

select distinct(server_name) from msdb.dbo.backupset ; 

go 

select distinct(server_name) from msdb.dbo.backupset ; 

sản xuất:

SQLTEST 

CSQL2012 

CSQL2012 
+0

@@ là các biến toàn cục, đó là lý do tại sao chúng thay đổi tùy thuộc vào máy chủ nào bạn kết nối với. –

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