Если вы используете Sql Server, вы можете использовать Связанные серверы для предоставления необходимых вам средств, тогда вы сможете выполнить следующий код на сервере B:
INSERT INTO [dbo].[TableA]
(
SerialNumber,
PartNumber
)
SELECT SerialNumber,
PartNumber
FROM [ServerA].[DatabaseNameOnServerA].[dbo].[TableA]
WHERE SerialNumber = '1'
Если вы не можете использовать связанные серверы или хотите / должны делать это в коде, то это также довольно просто:
using (var connection = new SqlConnection(connectionStringForServerA)
{
connection.Open();
var query = "SELECT SerialNumber, PartNumber FROM [dbo].[TableA] WHERE SerialNumber = '1'";
using (var adapter = new SqlDataAdapter(query, connection);
{
var data = new DataTable();
adapter.Fill(data);
using (var connectionB = new SqlConnection(connectionStringForServerB)
{
var query = "INSERT INTO [dbo].[TableA] (SerialNumber, PartNumber) VALUES (@Serial, @Part)";
foreach(DataRow recordFromServerA in data.Rows)
{
using(var command = new SqlCommand(query, connectionB)
{
command.Parameters.AddWithValue("@Serial", recordFromServerA["SerialNumber"]);
command.Parameters.AddWithValue("@Part", recordFromServerA["PartNumber"]);
command.ExecuteNonQuery();
}
}
}
}
}
Существуют более эффективные способы выполнения вставки, но наличие в коде четкого описания того, что он делает, как я делал там, должно прояснить вам, как это работает (стоит отметить, что я на самом деле запустить пример кода, который я дал, так что, возможно, потребуется немного доработать, это также зависит от Sql Server).