Обновление sql server. Обновление баз данных Microsoft SQL Server. Обновление значений в нескольких полях строки

Данная статья описывает необходимую информацию для отслеживания обновлений для SQL-сервера Microsoft.
Прежде чем обновляться, необходимо выяснить, какая версия уже установлена. Необходим точный номер, включающий в себя номер построения (build number). Более детально описано в разделе "Вопросы"

MS SQL Server

MS SQL Server (Официальные сборки)
RTM (без SP) SP1 SP2 SP3 SP4 Примечание
SQL Server 2017 14.0.1000.169 - - - - -
SQL Server 2016 13.0.1601.5 13.0.4001.0
(13.1.4001.0)
13.0.5026.0
(13.2.5026.0)
- -
SQL Server 2014 12.0.2000.8 12.0.4100.1
(12.1.4100.1)
12.0.5000.0
(12.2.5000.0)
- - При работе с репликацией рекомендуется SP1 или выше.
SQL Server 2012 11.0.2100.60 11.0.3000.0
(11.1.3000.0)
11.0.5058.0
(11.2.5058.0)
11.0.6020.0
(11.3.6020.0)
11.0.7001.0
(11.4.7001.0)
SQL Server 2008 R2 10.50.1600.1 10.50.2500.0
(10.51.2500.0)
10.50.4000.0
(10.52.4000.0)
10.50.6000.34
(10.53.6000.34)
- При работе с репликацией рекомендуется SP2 или выше.
SQL Server 2008 10.0.1600.22 10.0.2531.0
(10.1.2531.0)
10.0.4000.0
(10.2.4000.0)
10.0.5500.0
(10.3.5500.0)
10.0.6000.29
(10.4.6000.29)
При работе с репликацией рекомендуется SP3 или выше.
SQL Server 2005 9.0.1399.06 9.0.2047 9.0.3042 9.0.4035 9.0.5000 При работе с репликацией рекомендуется SP4.

Вопросы

В: Как определить версию?
О: Для определения какая точно у вас версия стоит выполните запрос SELECT @@VERSION .

В: Подойдет ли обновление от Express на Standard или наоборот?
О: Обновления универсальны и подходят ко всем редакциям конкретной версии серверов.

В: Как ставить обновления?
О: Только последнее. Например, для SQL 2014: 12.0.2000.8 => 12.0.5000.0. Последний SP по списку содержит предыдущие пакеты обновления

В: Не порушится ли база?
О: Нет. Но отсутствие бэкапа не делает автоматизатора специалистом!

В: Что случится с репликацией?
О: Ничего особенного. Принцип обновления: сначала центральный сервер, затем подписчики. Обмен в это время должен быть завершен окончательно для всех подписчиков. В случае с круглосуточной работой необходимо обеспечить переключение работы на другой пк (например, на паблишер или резервный подписчик).

В: Как долго ставятся обновления?
О: В зависимости от версии разнится и время установки. В среднем процедура обновления занимает от 10 до 30 минут, может быть дольше.

В: Можно ли работать с базой в это время?
О: Категорически нет.

Некоторые полезные ресурсы

  • Документация по всем продуктам;
  • Форум технической поддержки Microinvest , где Вы сможете быстро получить ответ на интересующий вопрос;
  • Примеры автоматизации ресторанов и торговли на базе Microinvest в России и странах СНГ;
  • График предстоящих обучений в России и странах СНГ;

В данной статье я расскажу о процессе обновления баз данных Microsoft SQL Server и предложить программный продукт, который может использоваться при взаимодействии заказчика и исполнителя.

Прежде всего, зачем это нужно

Наша компания занимается разработкой программного обеспечения и в большинстве случаев в качестве СУБД мы используем Microsoft SQL Server. Для определенности будем называть компанию-разработчика «исполнителем », а компанию-клиента – «заказчиком ».

В процессе внесения изменений в базу данных программистами исполнителя формируется набор скриптов, созданных вручную или в специализированном П/О.

Впоследствии возникают такие задачи:

  1. на стороне исполнителя проверить выполнение набора скриптов в тестовой базе данных;
  2. на стороне заказчика выполнить скрипты в рабочей базе данных клиента;
Предположим, что проверить выполнение скриптов в тестовой БД может и программист и тестировщик с помощью Microsoft SQL Server Managerment Studio (SSMS). Но заставлять заказчика проводить эти операции в SSMS невозможно, так как:
  • у него вообще может быть не установлен SSMS;
  • заказчик может не обладать знаниями работы с БД. И не должен по большому счету;
  • в случае возникновения ошибок при выполнении скриптов, заказчику будет затруднительно собрать их для отправки разработчикам;

Как мы решаем указанную задачу

Нами был разработан программный продукт «Менеджер обновления баз данных», который состоит из двух программ:
  • программа для подготовки пакета обновления;
  • программа для выполнения пакета обновления;
Программа для подготовки обновления
Программа используется у исполнителя. Программисты с её помощью формируют набор скриптов в один файл.

Из особенностей этой программы можно отметить два пункта:

  • в формируемый пакет обновления может быть добавлена информация о структуре эталонной базы данных. Если такая информация присутствует в пакете, то заказчик после выполнения обновления может сравнить структуру своей базы с эталонной;
  • для заказчика программа выполнения обновления передается в виде одного EXE файла, внутри которого зашиты скрипты и структура эталонной базы.
Программа для выполнения обновления
Как уже упоминалось, запуск программы осуществляется с помощью одного EXE файла. Пользователю в большинстве случаев достаточно ввести регистрационную информацию (кстати, эти значения можно зашить в пакет обновления) и везде нажать «Далее».

На втором экране производится обновление. После этого можно провести сравнение зашитой в пакет структуры эталонной базы и текущей (на которой было выполнено обновление).

Анализ расхождения в структуре производится в графическом интерфейсе программы обновления.

К сожалению, просмотр расхождений программистами исполнителя осуществляется в текстовом файле журнала, который впоследствии высылает заказчик. Интересный подход решения этой проблемы предложен в статье Контроль изменения структуры БД . Данная задача не столь критична; программисты могут сами написать скрипт для приведения структуры к целевой.

Программный комплекс распространяется по лицензионному соглашению Freeware, скачать инсталлятор можно по ссылке

В этой статье мы покажем, как обновить пробную (Evaluation Edition) или Express версию SQL Server 2008 R2 до полноценной рабочей версии SQL Standart или Enterprise. С подобной задачей можно столкнуться, когда для тестирования/разработки некого программного продукта устанавливается ознакомительная версия SQL Server. Нередко случается, что после окончания такого тестирования/ окончания периода работы ознакомительной версии, принимается решение перевести систему в промышленную эксплуатацию, для чего необходимо перейти на полнофункциональную редакцию SQL Server, а переустанавливать СУБД не хочется.

Примечание . Инструкция применима также к Microsoft SQL Server 2012 и R2.

Срок работы ознакомительной версии SQL Server SQL 2008 R2 (и более новых версий) – 180 дней . После окончания пробного периода служба SQL Server перестает запускаться. В случае с SQL Server Express — имеется ограничение на размеры БД.

Обновить лицензию лицензии без необходимости переустанавливать SQL Server можно только с младшей редакции до более старшей, например: Evaluation Edition / Express Edition with Advanced Services -> Standard или сразу в Enterprise.

После окончания периода тестирования при попытке открыть SQL Server Management Studio появляется окно с ошибкой:

Evaluation period has expired. For information on how to upgrade your evaluation software please go to http://www.microsoft.com/sql/howtobuy

Обновление редакции MS SQL Server 2008 R2

В первой части мы разберемся, как обновить версию SQL Server с помощью лицензионного ключа приобретенного у Microsoft или партнеров.

Запустим Центр инсталляции SQL (Start -> All Programs -> Microsoft SQL Server 2008 R2 -> Configuration Tools -> SQL Server Installation Center (64-bit)).

Совет . Это же окно можно открыть, запустив setup.exe с установочного диска SQL Server

Перейдем в раздел обслуживания (Maintenance ) и выберем пункт Edition Upgrade (Обновление редакции). Запустится Мастер обновления (Edition Upgrade Wizard).

И, следуя подсказкам мастера, введем лицензионный ключ SQL Server-а в соответствующее поле.

Затем нужно выбрать какую копию (инстанс) SQL Server нужно обновить.

В итоговом отчете будет указан статус апгрейда версии и ссылка на подробный текстовый лог.

Проверить, какая редакция SQL Server используется можно с помощью SQL Server Management Studio , щелкнув ПКМ по имени инстанса. В нашем примере это SQL Server Enterprise.

Ту же самую операцию можно выполнить и из командной строки, запустив с указанными параметрами файл setup.exe с диска с дистрибутивом SQL Server.

Setup.exe /Q /ACTION=editionupgrade /INSTANCENAME= /PID=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx /IAcceptSQLServerLicenseTerms /Indicateprogress

Совет . При обновлении редакции с SQL Server Express, нужно дополнительно включить службу SQL Server Agent и с помощью SQL Server Configuration Manager задать параметры служебной учетной записи для службы SQL Server Agent.

Обновление до корпоративной Enterprise версии SQL Server (Volume License)

В том случае, если вы захотите обновить используемую версию SQL Server по программе корпоративного лицензирования Microsoft, вы будете удивлены, что в центре корпоративного лицензирования Microsoft Volume Licensing Service Center (MS VLSC) ключи для SQL Server отсутствуют.

Дело в том, что ключ интегрирован непосредственно в дистрибутив. Самое интересное, что поддержка VLSC рекомендует удалить установленный SQL Server и переустановить его с помощью скачанного c VLSC iso-файла с дистрибутивом SQL.

К счастью, все таки есть возможность получить правильный ключ непосредственно из дистрибутива


Под обновлением данных в БД подразумевается изменение значений в существующих записях таблицы. При этом возможно как изменение значений полей в группе строк (даже всех строк таблицы), так и правка значения поля отдельной строки.

В SQL, изменить запись в таблице БД можно с помощью команды UPDATE. В самом минимальном виде команда обновления данных выглядит следующим образом:

UPDATE таблица SET поле = значение

Здесь, UPDATE – команда указывающая, что запрос на обновление данных;

таблица – название таблицы, в которой будет проводиться изменения;

SET – команда, после которой через запятую указываются поля с назначаемыми им значениями;

поле – поле таблицы, в которое будет внесено изменение;

значение – новое значение, которое будет внесено в поле.


Например, если необходимо задать полю во всех строках таблицы значение равное нулю, можно выполнить такой запрос:

UPDATE goods SET price = 0

В этом случае, поле price абсолютно во всех имеющиеся строках таблицы примет значение 0.

Изменение одного значения

Изменение значения всех полей в таблице необходимо крайне редко. Чаще всего необходимо поменять значение какой-то конкретной записи. Для этого в завершении строки с командой UPDATE будет добавлена директива WHERE, в которой указывается условие, определяющее с какой именно строкой нужно выполнить операцию обновления.

Имеется таблица:

Для примера, нужно обновить стоимость товара с известным нам его значением num. Для этого, выполним следующий запрос:

UPDATE goods SET price = 150 WHERE num = 2

Теперь, перед операцией изменения полей, будет выбрана строка, удовлетворяющая условию num = 2. Такая строка в таблице одна. В этой стоке цена и будет изменена на значение 150. В результате получим таблицу с измененной ценой товара.

Внесение изменений в несколько строк с условием отбора

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

Например, мы хотим уменьшить в два раза цену всех товаров, которые сейчас стоят от 100 и более. Запрос:

UPDATE goods SET price = price / 2 WHERE price >= 100

Условие WHERE здесь содержит правило, по которому будут выбраны только товары с ценой равной или более 100, а те товары, цена у которых ниже 100, затронуты запросом не будут.

price = price / 2 – формула, по которой будет вычисляться новая цена товаров. Новая цена будет записана равной старой цене поделенной на два.

В результате выполнения такого запроса получим таблицу с измененными записями:

Обновление значений в нескольких полях строки

При необходимости обновлять сразу несколько полей, все поля с их значениями указываются после директивы SET через запятую. Например, нужно изменить название и цену товара с кодом 2 на «утюг», стоимостью 300:

UPDATE goods SET title = "утюг" , price = 300 WHERE num = 2

Такой запрос каждому соответствующему полю в строке назначит его значение. А условие укажет, в какой именно строке будут выполнены изменения.


Выше приведены основные виды операций обновления. На их основе формируется запросы для решения большинства задач изменения данных в разработке с применением SQL.

Microsoft® SQL Server 2005 - Express Edition бесплатный продукт и поставляется вместе с программным обеспечением Parsec 2.5 и 3. Выполняет функцию хранения всех данных системы. Ограничением данного продукта является объем базы данных, составляющий 4 гигабайта. После достижения данного порога, новые данные перестают записываться в систему, что приводит к потере актуальности хранящейся информации. Для решения такой проблемы требуется переход на платную расширенную версию SQL Server (у нее нет ограничений на объем базы данных) или обновление до Microsoft SQL Server 2008 R2 SP2 Express. SQL Server 2008 R2 SP2 Express - это бесплатная база данных с ограничением объема базы данных размером 10 гигабайт.

1. Для начала необходимо загрузить Microsoft® SQL Server® 2008 R2 SP2 - Express Edition с сайта www.microsoft.com, по ссылке: http://www.microsoft.com/en-US/download/details.aspx?id=30438 размер файла 110.4 MB

ВАЖНО: Для обновления необходима 32 битная английская версия!

2. На Windows XP, Vista, 2003, 2008 в процессе установки может понадобиться программная платформа NET.Framework 3.5 SP1. Загрузить можно пройдя по ссылке http://www.microsoft.com/ru-ru/Download/details.aspx?id=22 (Загружаете данную платформу перед обновлением SQL Server)
В Windows 7, 2008 R2 Server, 8, 8.1, 2012 и 2012 R2 Server .NET Framework 3.5 является компонентом Windows и устанавливается через Панель управления\Все элементы панели управления\Программы и компоненты "Включение и выключение компонентов Windows"

3. Запустить загруженный файл.

4. Дождаться извлечения установочного пакета и начала установки.

5. В открывшемся диалоговом окне установки, необходимо выбрать пункт меню "Upgrade from SQL 2000, SQL Server 2005 or SQL Server 2008 Lauch a wizard to upgrade SQL 2000, SQL Server 2005 or SQL Server 2008 to SQL Server 2008 R2"

6. В следующем окне необходимо Принять условия лицензионного соглашения - "I accept the license terms".

7. В окне установки "Select Instance" необходимо выбрать базу, которую Вы планируете обновить. "Instance to upgrade" (PARSEC3 - для ParsecNET 3, PARSECDB - для ParsecNET 2.5)

8. Дождаться нового окна установки "Error Reporting", предлагаемую галку в данном меню можно не ставить.

9. В окне "Upgrade Roles" нажмите "Show details", откроется окно в котором виден процесс установки компонентов, также видны ошибки если они вдруг возникнут.

10. Дождаться окончания процесса установки и обновления компонентов SQL server - в конце появится сообщение, что обновление прошло успешно - "Your SQL Server upgrade completed successfully".

11. Окно установки можно закрыть "Close" и выйти по крестику. Вы обновили SQL Server 2005 Express до MS SQL Server 2008 R2 Express SP2 EN.