2016-08-11 97 views
2

所以我有了這個查詢,我試圖在SQLCMD模式在SSMS運行查詢多個服務器:SSMS - 在單個查詢

:CONNECT SERVER1 
    select * 
    from [SERVER1].DB1.dbo.Project 
    where id not in 
    (
     :CONNECT [SERVER2] 
     select distinct id from [SERVER2].DB2.dbo.Project 
); 

但得到這個錯誤,不知道我做錯了。任何幫助,將不勝感激。謝謝!

致命腳本錯誤。無法打開在SQLCMD 腳本中指定的連接。

回答

3

這對於SQLCMD查詢無效,您將無法按照這種方式進行嘗試。

通過他們的4部分命名連接到鏈接服務器。從中取出控制語言。這裏不需要SQLCMD。

select * 
    from [SERVER1].DB1.dbo.Project 
    where id not in 
    (
     select distinct id from [SERVER2].DB2.dbo.Project 
); 
+0

我以前試過這個,但在選擇查詢對象時出現'無效對象名'錯誤,這取決於它連接到哪個數據庫。例如,如果我在Server1.db1上打開了一個新的查詢窗口,那麼我會得到無效的對象名稱Server2.db2 ..如果我從Server2.db2打開一個新的查詢窗口,它會給出'無效的對象名稱'for Serer1.db1。我也嘗試在頂端使用Master,但這沒有什麼不同。 – User123

+0

您是否已將鏈接的服務器設置爲名稱Server1和Server2? –

+0

我不知道。還有另一種方法可以做到嗎?因爲我收到一條消息,說我沒有權限對我的localdb執行操作(sp_addlinkedserver)。 – User123