We have built an application which needs a local copy of a table from another database. I would like to write an ado.net routine which will keep the local table in sync with the master. Using .net 2.0, C# and ADO.NET.  

Please note I really have no control over the master table which is in a third party, mission critical app I don't wish to mess with. 

For example Here is the master data table:

```
ProjectCodeId   Varchar(20)   [PK]
ProjectCode     Varchar(20)
ProjectDescrip  Varchar(50)
OtherUneededField    int
OtherUneededField2   int

```

The local table we need to keep in sync...

```
ProjectCodeId   Varchar(20)   [PK]
ProjectCode     Varchar(20)
ProjectDescrip  Varchar(50)

```

Perhaps a better approach to this question is what have you done in the past to this type of problem? What has worked best for you or should be avoided at all costs?

My goal with this question is to determine a good way to handle this. So often I am combining data from two or more disjointed data sources. I haven't included database platforms for this reason, it really shouldn't matter. In this current situation both databases are MSSQL, but I prefer the solution not use linked databases or DTS, etc. 

Sure, truncating the local table and refilling it each time from the master is an option, but with thousands of rows I don't think this is very efficient. Do you?