Как вставить данные на сервер A, которые поступают из Выбрать данные на сервере B? - PullRequest
0 голосов
/ 29 июля 2010

Сценарий:

У меня есть сервер разработки, которому нужно вставить данные из моей таблицы A с сервера B TableA.

SERVERA.TableA:serialnumber = empty,partnumber=empty

Ex:

Строка подключения к базе данных1.

Select serialnumber,partnumber from ServerB.TableA where (serialnumber='1')

Тогда

Строка подключения к базе данных2

Insert into serialnumber,partnumber from SERVERA.TableA 

Результат:

SERVERA.TableA:serialnumber = 1,partnumber=2

1 Ответ

0 голосов
/ 29 июля 2010

Если вы используете 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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...