Salve a tutti,
sono d'accordo con @migliorabile, ma capisco che con SQLExpress queste funzionalita' non ci sono... e delle volte puo' andare bene anche "arrangiarsi", anche se i risultati sicuramente saranno lontani da quelli "seri e professionali" forniti nativamente dal dbms...
non ho mai implementato un log shipping manuale, ma ricordo che gia' nel 2007 Edwin Sarmiento scriveva
https://www.edwinmsarmiento.com/your-poor-mans-sql-server-log-shipping/
mentre lato completamente "client", ADO.Net non mi pare ti permetta "direttamente" quello che stai cercando di fare, ma ovviamente lo puoi raggiungere (piu' o meno )... hai detto che farai sul server di protezione una SELECT ... WHERE [offline] = 1;
ottieni cosi' sul DataSet il tuo resultset popolato... ovviamente non puoi "direttamente" ribaltarne il contenuto semplicemente cambiando connessione o cose simili, tanto piu' che se anche facessi degli update al resultset per modificarne lo stato e non avere un resultset completamente "statico", avresti un nuovo stato di "update" e non di "addnew"...
rilsolvibile ad esempio utilizzando un nuovo SqlCommand connesso al server B configurato con tutti i parameters necessari ad effettuare l'insert sulla tabella del server B, quindi ciclando il tuo resultset riga per riga popoli i parameters ed esegui n volte il command di insert...
a fine operazione, teoricamente, distruggi il command, distruggi il dataset con connessione server A e ripopoli un nuovo dataset con connessione al server B tornato on-line o cose simili...
tecnicamente non complicato, ma ovviamente NON si basa sulle funzionalita' dei DataAdapter o roba(ccia) simile
personalmente difficilmente utilizzo funzionalita' di accesso ai dati cosi' dirette... le mie classi di interfacciamento ai dati sono (quasi sempre) collegate a commands che eseguono stored procedures per l'esecuzione di tutte le operazioni CRUD, ed in questo senso non avrei difficolta' a "spostare" l'operazione "sul primo server disponibile" (parolona un po' grossa in quanto ci sarebbero tempi di connessione "valutabili" lato client per la verifica di connessione e/o di down, tempi che potrebbero essere poco apprezzabili )
my $ 0.02
salutoni
--
Andrea