Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/41: Рейтинг темы: голосов - 41, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 3

Копирование таблицы между разными MS SQL Server

20.03.2013, 13:54. Показов 8243. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Поиск не дал результатов по указанному в теме вопросу. Обращаюсь к Вам за советом.
Есть задача скопировать данные из таблицы "table1" sql сервера ("sqlsrv1") в идентичную таблицу "table2" другого sql сервера ("sqlsrv2"). Т.о. одинаковые по структуре таблицы на разных SQL серверах.
Я создал процедуру, которая удаляет и потом создает "table2" на "sqlsrv2", идентичную по структуре "table1" на "sqlsrv1". Осталось наполнить её данными из "sqlsrv1". Этот шаг я хочу сделать на C#. Забрать данные с "sqlsrv1" и заполнить их в SQLDataAdapter у меня получилось, а как теперь передвинуть эти данные в "sqlsrv2"?

P.S. Варианты с Linked Server не предлагать - нет доступа, админы "sqlsrv1" не дадут. Да и хочется практиковаться на C#.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2013, 13:54
Ответы с готовыми решениями:

Использование подключения к SQL SERVER разными сборками
Добрый вечер, коллеги разработчики. Разрабатываю приложение с поддержкой плагинов. Обычное многооконное приложение, а в плагинах собственно...

Резервное копирование БД SQL Server 2005
Всем доброго времени суток! Мне надо сделать резервное копирование и восстановление БД на Visual C#. БД на SQL Server 2005. Если кто...

Резервное копирование и восстановление базы Sql server 2005 средствами c#
Есть программа, которая работает с базой данный Sql server 2005. Задача такая средствами c# сделать резервную копию базы данных и...

7
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236
20.03.2013, 14:09
ну я бы попробовал через цикл
C#
1
2
3
4
5
6
7
8
9
10
11
for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++)
{
     sqlDataAdapter.InsertCommand = new SqlCommand("INSERT INTO Product " +
                    "VALUES (@Id, @Product, @Inf)",sqlConnection);
     sqlDataAdapter.InsertCommand.Parameters.Add("@Id", SqlDbType.Int).Value = 
          int.Parse(dataSet.Tables[0].Rows[i][0].ToString());
     sqlDataAdapter.InsertCommand.Parameters.Add("@Product", SqlDbType.NVarChar).Value = 
          dataSet.Tables[0].Rows[i][1].ToString();
     sqlDataAdapter.InsertCommand.Parameters.Add("@Inf", SqlDbType.NVarChar).Value = 
          dataSet.Tables[0].Rows[i][2].ToString();
}
но это наверно слишком медленно.
хотя я не пробовал.
0
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 3
21.03.2013, 08:35  [ТС]
Нашел решение, вчера реализовал - работает отлично. Неожиданно даже!
http://msdn.microsoft.com/ru-r... 10%29.aspx
0
403 / 86 / 8
Регистрация: 16.02.2013
Сообщений: 356
21.03.2013, 22:00
Цитата Сообщение от Telum Посмотреть сообщение
Нашел решение, вчера реализовал - работает отлично. Неожиданно даже!
http://msdn.microsoft.com/ru-r... 10%29.aspx
Совершенно неожиданно оказалось, что в доках иногда что-то полезное пишут!

Если бы Вы почитали еще, то выяснили бы, что это способ для массовых загрузок, когда нужно копировать десятки тысяч строк и более. Для небольших таблиц все гораздо проще

SQL
1
2
3
SELECT * 
INTO server2.base1.dbo.table1
FROM server1.base1.dbo.table1
1
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236
21.03.2013, 22:37
Cat2, надоже так просто.
а я тут со своими циклами...

Добавлено через 3 минуты
Cat2, а где "serverN", нужно указывать полное имя экземпляра MS SQL server?
0
403 / 86 / 8
Регистрация: 16.02.2013
Сообщений: 356
21.03.2013, 23:26
Nike Jagger, да, конечно
0
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 3
22.03.2013, 13:28  [ТС]
Cat2, а уточните нам, с какими учетными данными будет обращаться Server1 к Server2? Повторюсь, linked server мне не подходит. Вы наверное имели ввиду вот это:
http://msdn.microsoft.com/ru-r... 05%29.aspx
0
403 / 86 / 8
Регистрация: 16.02.2013
Сообщений: 356
23.03.2013, 07:45
Telum, нет. связанные сервера используются тогда, когда хотя бы один из источников данных не MS SQL.
Если все MS SQL, то достаточно в запросе указывать полностью квалифицированное имя: server.base.owner.table

Разумеется на все сервера должны быть права
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.03.2013, 07:45
Помогаю со студенческими работами здесь

Создание связи между таблицами в MS SQL Server
Я явно что-то недопонимаю. Пытаюсь разобраться как создать простейшую базу данных(ну может не совсем простейшую) в Microsoft SQL Server. ...

Cвязка между двумя comboBox из SQL server
Как сделать. У меня все таблицы созданы в SQL server и связаны между собой. Мне нужно, чтобы при выборе comboBox1 отображались нужные...

Как настроить MS SQL Server, чтобы через Access, можно было редактировать таблицы MS SQL Server?
ВОПРОС: Как настроить MS SQL Server, чтобы через Access, можно было редактировать таблицы MS SQL Server? MS SQL Server...

Как можно осуществить репликацию между офисной БД (MS SQL Server) и БД в Интернете (MS SQL Server) ?
Подскажите пожалуйста, как можно осуществить репликацию между офисной БД (MS SQL Server) и БД в Интернете (MS SQL Server) и где об этом...

Копирование IXMLNode между разными документами
Добрый день. Как скопировать Node из одного документа в другой?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 31.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru