2012-07-13 51 views
1

由於我有很多數據庫,我想通過它們循環執行他們每個人的linq查詢/更新。跨數據庫查詢,循環數據庫

是否有可能像做

foreach(var r in master.sysdatabases) 
{ 
from b from r.chicken 
select b.age; 
} 

我有跨數據庫支持的高級版。

回答

0

我能夠像這樣解決它,但我真的不喜歡使用字符串連接查詢。

var r = (from b in Sysdatabases select b.Name).ToList(); 
foreach(var i in r) 
{ 
try{ 
    var o = ExecuteQuery<string>("select urls from "+i+".dbo.website_setting"); 
    Console.WriteLine(o); 
} 
catch(Exception){} 
} 

的嘗試,執行是如果表不存在(master數據庫等)

4

如果所有數據庫都具有相同的「雞」的表,你可以這樣做:

var builder = new SqlConnectionStringBuilder (Connection.ConnectionString); 

foreach (var db in sys.Databases) 
{ 
    builder.InitialCatalog = db.Name; 
    var dc = new TypedDataContext (builder.ToString()); 
    try 
    { 
     var query = 
     from b in dc.Chickens 
     select b.Age; 

     query.Dump(); 
    } 
    catch { ... } 
} 
+0

不起作用。沒有這樣的事情sys.Databases,我試圖在主數據庫中的視圖(sysdatabases),然後我得到dc.Chickens錯誤 – hreinn1000 2012-07-23 10:00:16

+4

右鍵單擊連接,屬性。選中「包含系統視圖和SP」 – 2012-07-24 13:14:42