1
我有3個SQL服務器,我想查詢,但我只想查詢某些數據庫。這是可能的嗎?我把它們設置爲已註冊的服務器,我可以在他們查詢系統型號查詢但是,如果我想查詢像我可以跨多個服務器進行查詢,但只包含某些數據庫嗎?
SELECT * FROM SJOB
我不能因爲不是每個數據庫都有一個表,所以它失敗。任何幫助將不勝感激。謝謝!
我有3個SQL服務器,我想查詢,但我只想查詢某些數據庫。這是可能的嗎?我把它們設置爲已註冊的服務器,我可以在他們查詢系統型號查詢但是,如果我想查詢像我可以跨多個服務器進行查詢,但只包含某些數據庫嗎?
SELECT * FROM SJOB
我不能因爲不是每個數據庫都有一個表,所以它失敗。任何幫助將不勝感激。謝謝!
你可以查詢sys.tables
視圖來檢查表是否存在:
if exists(select * from sys.tables where type = 'U' and name = 'SJOB')
select * from SJOB
要使用在註冊的服務器組,則需要在表不也寫了select
查詢服務器存在。模式需要匹配,但您可以使用top 0
不返回任何記錄。您需要指定所有列,但虛擬值需要與列類型匹配:
if exists(select * from sys.tables where type = 'U' and name = 'SJOB')
select * from SJOB
else
select top 0 1 as col1name, '' as col2name
當我運行這個命令時,我只是得到「命令(s)completed completed。(3 servers)」。它沒有返回任何價值。 – BSanders
您究竟如何在服務器上運行它?您的代碼中沒有任何內容可以暗示... – Szymon
我有3臺服務器在管理工作室中設置爲註冊服務器。 – BSanders