Обновление баз данных Microsoft SQL Server. Запросы SQL для обновления данных (UPDATE) Обновление sql server

В этой статье мы покажем, как обновить пробную (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.

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


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.

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

В 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.

: Как правильно обновлять SQL Server

Что если я спрошу: "Все ли обновления установлены на ваш SQL Server?"

Как ответить на такой вопрос? Заглянуть в центр обновления Windows? Это вряд ли поможет. Скорее всего вы увидите там вот такую картину:

Но, как ни странно, это вовсе не означает, что на SQL Server установлены самые свежие обновления!

Для отслеживания обновлений именно для SQL-сервера Микрософт создал специальную страничку — . Положите её себе в закладки:

Но прежде чем идти туда, необходимо выяснить, какая версия установлена у нас прямо сейчас. Нам нужен точный номер, включающий в себя номер построения (build number). Получить его можно посмотрев на системную переменную @@Version :

Запомните эти цифры — только по ним мы сможем определить какие обновления у нас уже установлены, а какие — нет. SQL-сервер, в отличие от операционной системы сам не сообщает нам о каждом установленном обновлении. Поэтому придётся работать с номером @@Version .

Теперь заходим в центр обновления SQL-сервера и видим там удобную табличку:

Здесь нам понадобятся три вещи:

  • Во-первых, запомним номер построения, соответствующий этому обновлению. По окончании процедуры обновления @@Version нашего SQL-сервера должна выдавать именно такой номер.
  • Во-вторых, обязательно следует посмотреть историю номеров построений, соответствующих обновлениям с последнего сервисного пакета. Это важно, потому что накопительное обновление установится только на предшествующий ему сервисный пакет.
  • И в-третьих, полезно посмотреть список исправлений, содержащихся в накопительном пакете. Администратор должен быть в курсе изменений, вносимых этим пакетом.

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

Это из-за того, что у нас не установлен сервисный пакет SP1. Придётся сначала поставить его.

И вот теперь у нас есть план действий:

  1. Устанавливаем сервисный пакет SP1.
  2. Устанавливаем накопительный пакет обновлений CU4.

Действуем! После установки SP1 проверяем номер @@Version . С исходного 2100.60 он увеличился до 3000.0.