- Запросы SQL для обновления данных (UPDATE)
- Изменение одного значения
- Внесение изменений в несколько строк с условием отбора
- Обновление значений в нескольких полях строки
- Обновление базы данных сервера отчетов
- Способы обновления базы данных сервера отчетов в собственном режиме
- Обновление схемы, метаданных и содержимого сервера отчетов
- Разрешения, необходимые для обновления базы данных сервера отчетов
- Обновление базы данных в собственном режиме с помощью скриптов
- Обновление баз данных Microsoft SQL Server
- Прежде всего, зачем это нужно
- Как мы решаем указанную задачу
- Обновление базы данных при помощи отсоединения и присоединения (Transact-SQL)
- Перед началом
- Ограничения
- Рекомендации
- Обновление базы данных при помощи функций отсоединения и присоединения
- Пример
- Дальнейшие действия. После обновления базы данных SQL Server
- Уровень совместимости баз данных после обновления
- Управление метаданными в экземпляре обновленного сервера
- Алгоритм шифрования главного ключа службы и главного ключа базы данных изменяется с 3DES на AES
Запросы SQL для обновления данных (UPDATE)
Под обновлением данных в БД подразумевается изменение значений в существующих записях таблицы. При этом возможно как изменение значений полей в группе строк (даже всех строк таблицы), так и правка значения поля отдельной строки.
В SQL, изменить запись в таблице БД можно с помощью команды UPDATE. В самом минимальном виде команда обновления данных выглядит следующим образом:
Здесь, UPDATE – команда указывающая, что запрос на обновление данных;
таблица – название таблицы, в которой будет проводиться изменения;
SET – команда, после которой через запятую указываются поля с назначаемыми им значениями;
поле – поле таблицы, в которое будет внесено изменение;
значение – новое значение, которое будет внесено в поле.
Например, если необходимо задать полю во всех строках таблицы значение равное нулю, можно выполнить такой запрос:
В этом случае, поле price абсолютно во всех имеющиеся строках таблицы примет значение 0.
Изменение одного значения
Изменение значения всех полей в таблице необходимо крайне редко. Чаще всего необходимо поменять значение какой-то конкретной записи. Для этого в завершении строки с командой UPDATE будет добавлена директива WHERE, в которой указывается условие, определяющее с какой именно строкой нужно выполнить операцию обновления.
num (номер товара) | title (название) | price (цена) |
1 | Чайник | 300 |
2 | Чашка | 100 |
3 | Ложка | 25 |
4 | Тарелка | 100 |
Для примера, нужно обновить стоимость товара с известным нам его значением num. Для этого, выполним следующий запрос:
Теперь, перед операцией изменения полей, будет выбрана строка, удовлетворяющая условию num = 2. Такая строка в таблице одна. В этой стоке цена и будет изменена на значение 150. В результате получим таблицу с измененной ценой товара.
Внесение изменений в несколько строк с условием отбора
Если вспомнить все многообразие условий в запросе, можно представить себе насколько разнообразными могут быть выборки. Поэтому и запросы на обновления могут выполняться либо с одной строкой, либо с группой строк, либо со всеми строками таблицы. Все зависит от стоящей перед вами задачи, а так же с какими строками таблицы нужно выполнять операции обновления.
Например, мы хотим уменьшить в два раза цену всех товаров, которые сейчас стоят от 100 и более. Запрос:
Условие WHERE здесь содержит правило, по которому будут выбраны только товары с ценой равной или более 100, а те товары, цена у которых ниже 100, затронуты запросом не будут.
price = price / 2 – формула, по которой будет вычисляться новая цена товаров. Новая цена будет записана равной старой цене поделенной на два.
В результате выполнения такого запроса получим таблицу с измененными записями:
num (номер товара) | title (название) | price (цена) |
1 | Чайник | 150 |
2 | Чашка | 50 |
3 | Ложка | 25 |
4 | Тарелка | 50 |
Обновление значений в нескольких полях строки
При необходимости обновлять сразу несколько полей, все поля с их значениями указываются после директивы SET через запятую. Например, нужно изменить название и цену товара с кодом 2 на «утюг», стоимостью 300:
Такой запрос каждому соответствующему полю в строке назначит его значение. А условие укажет, в какой именно строке будут выполнены изменения.
Выше приведены основные виды операций обновления. На их основе формируется запросы для решения большинства задач изменения данных в разработке с применением SQL.
Источник
Обновление базы данных сервера отчетов
База данных сервера отчетов обеспечивает хранение одного или нескольких экземпляров сервера отчетов. Схема базы данных сервера отчетов с каждым новым выпуском служб Службы Reporting Servicesможет меняться, поэтому версия базы данных должна совпадать с версией используемого экземпляра сервера отчетов. В большинстве случаев обновление базы данных сервера отчетов может быть выполнено автоматически, без необходимости выполнения каких-либо действий со стороны пользователя.
Собственный режим. В собственном режиме Службы Reporting Services база данных сервера отчетов на самом деле состоит из двух баз данных с именами по умолчанию: ReportServer и ReportServerTempDB.
Режим SharePoint: в режиме интеграции служб SQL Server 2016 Reporting Services с SharePoint база данных сервера отчетов фактически является коллекцией баз данных, созданных для каждого экземпляра приложения службы Службы Reporting Services.
Способы обновления базы данных сервера отчетов в собственном режиме
В следующем списке приведены условия, при соблюдении которых происходит обновление базы данных сервера отчетов.
SQL Server Программа установки обновит одиночный экземпляр сервера отчетов. Схема базы данных сервера отчетов будет автоматически обновлена, после того как служба запустится и сервер отчетов определит, что версия схемы базы данных не совпадает с версией сервера.
При запуске службы сервер отчетов проверяет версию схемы базы данных, чтобы определить, соответствует ли она версии сервера. Если у схемы базы данных более старая версия, то она будет автоматически обновлена до версии, необходимой серверу отчетов. Функция автоматического обновления особенно полезна при восстановлении из резервной копии или подключении старой базы данных сервера отчетов. В файл журнала трассировки сервера отчетов выводится сообщение об обновлении версии схемы базы данных.
Диспетчер конфигурации служб Службы Reporting Services обновляет локальную или удаленную базу данных сервера отчетов, если для использования с более новым экземпляром сервера отчетов выбрана предыдущая версия. В этом случае необходимо подтвердить выполнение обновления, прежде чем оно будет осуществлено.
В диспетчере конфигурации служб Службы Reporting Services больше нет отдельной кнопки «Обновить» и скрипта обновления. Эти средства устарели, начиная с SQL Server 2008 , в связи с появлением в службе сервера отчетов функции автоматического обновления.
После обновления схемы откат до предыдущей версии становится невозможным. Чтобы иметь возможность воссоздать предыдущую установку, всегда создавайте резервную копию базы данных сервера отчетов.
Обновление схемы, метаданных и содержимого сервера отчетов
База данных сервера отчетов обновляется в три этапа.
Схема обновляется автоматически после установки и запуска службы или же после выбора базы данных сервера отчетов SQL Server в собственном режиме в диспетчере конфигурации Службы Reporting Services , который имеет более старую версию. Кроме этого, служба сервера отчетов осуществляет проверку версии базы данных во время запуска. Если сервер отчетов соединяется с базой данных предыдущей версии, то он обновляет ее во время своего запуска.
Дескрипторы безопасности обновляются при первом использовании базы данных сервера отчетов после обновления схемы.
Опубликованные отчеты и скомпилированные моментальные снимки отчетов обновляются при первом использовании. Дополнительные сведения см. в разделе Upgrade Reports.
Кроме базы данных сервера отчетов при работе сервера отчетов используется временная база данных. Она обновляется автоматически при обновлении базы данных сервера отчетов.
Разрешения, необходимые для обновления базы данных сервера отчетов
При обновлении установки служб Службы Reporting Services , включающем базу данных сервера отчетов, может появиться сообщение об ошибке, если обновление базы данных выполняется с недостаточными разрешениями. По умолчанию программа установки для соединения с удаленным экземпляром SQL Server и обновления схемы пользуется токеном безопасности пользователя, запустившего программу установки. База данных будет успешно обновлена, если у пользователя есть разрешения SQL Server sysadmin на доступ к серверу базы данных с расположенными базами данных сервера отчетов. Аналогичным образом при запуске программы установки из командной строки с указанием аргументов RSUPGRADEDATABASEACCOUNT и RSUPGRADEPASSWORD с учетными данными, обладающими разрешением sysadmin на изменение схемы на удаленном компьютере, обновление данных также произойдет успешно.
Однако, если разрешение sysadmin на изменение схемы на удаленном компьютере отсутствуют, в соединении будет отказано со следующей ошибкой.
«Setup was not able to upgrade the report server database schema. You must update the database schema manually after setup is finished. To update the schema, run the Report Server Configuration Manager, open the Database Setup page, re-select the database, and click Apply. The database will be upgraded automatically.»
В этот момент произойдет обновление программных файлов сервера отчетов, однако версия формата базы данных сервера отчетов останется прежней. Сервер отчетов будет недоступен до тех пор, пока процесс обновления не будет завершен (для этого базу данных необходимо обновить вручную).
Обновление базы данных в собственном режиме с помощью скриптов
Для обновления базы данных сервера отчетов можно использовать скрипты WMI. Дополнительные сведения см. в статье Метод GenerateDatabaseUpgradeScript (WMI MSReportServer_ConfigurationSetting).
Источник
Обновление баз данных Microsoft SQL Server
Прежде всего, зачем это нужно
Наша компания занимается разработкой программного обеспечения и в большинстве случаев в качестве СУБД мы используем Microsoft SQL Server. Для определенности будем называть компанию-разработчика «исполнителем», а компанию-клиента – «заказчиком».
В процессе внесения изменений в базу данных программистами исполнителя формируется набор скриптов, созданных вручную или в специализированном П/О.
Впоследствии возникают такие задачи:
- на стороне исполнителя проверить выполнение набора скриптов в тестовой базе данных;
- на стороне заказчика выполнить скрипты в рабочей базе данных клиента;
Предположим, что проверить выполнение скриптов в тестовой БД может и программист и тестировщик с помощью Microsoft SQL Server Managerment Studio (SSMS). Но заставлять заказчика проводить эти операции в SSMS невозможно, так как:
- у него вообще может быть не установлен SSMS;
- заказчик может не обладать знаниями работы с БД. И не должен по большому счету;
- в случае возникновения ошибок при выполнении скриптов, заказчику будет затруднительно собрать их для отправки разработчикам;
Как мы решаем указанную задачу
Программа для подготовки обновления
Программа используется у исполнителя. Программисты с её помощью формируют набор скриптов в один файл.
Из особенностей этой программы можно отметить два пункта:
- в формируемый пакет обновления может быть добавлена информация о структуре эталонной базы данных. Если такая информация присутствует в пакете, то заказчик после выполнения обновления может сравнить структуру своей базы с эталонной;
- для заказчика программа выполнения обновления передается в виде одного EXE файла, внутри которого зашиты скрипты и структура эталонной базы.
Программа для выполнения обновления
Как уже упоминалось, запуск программы осуществляется с помощью одного EXE файла. Пользователю в большинстве случаев достаточно ввести регистрационную информацию (кстати, эти значения можно зашить в пакет обновления) и везде нажать «Далее».
На втором экране производится обновление. После этого можно провести сравнение зашитой в пакет структуры эталонной базы и текущей (на которой было выполнено обновление).
Анализ расхождения в структуре производится в графическом интерфейсе программы обновления.
К сожалению, просмотр расхождений программистами исполнителя осуществляется в текстовом файле журнала, который впоследствии высылает заказчик. Интересный подход решения этой проблемы предложен в статье Контроль изменения структуры БД. Данная задача не столь критична; программисты могут сами написать скрипт для приведения структуры к целевой.
Программный комплекс распространяется по лицензионному соглашению Freeware, скачать инсталлятор можно по ссылке Менеджер обновлений баз данных
Источник
Обновление базы данных при помощи отсоединения и присоединения (Transact-SQL)
Применимо к: SQL Server (все поддерживаемые версии)
В этой теме описывается использование операции отсоединения и присоединения для обновления базы данных в SQL Server. После присоединения к SQL Serverбаза данных сразу становится доступной, после чего автоматически обновляется. Это исключает возможность использования базы данных с более старой версией Компонент Database Engine. Тем не менее обновление метаданных не влияет на режим совместимости базы данных. Дополнительные сведения см. в разделе уровень базы данных совместимости после обновления далее в этой статье.
Содержание раздела
Перед началом работы
Обновление базы данных SDL Server
Дальнейшие действия.
Перед началом
Ограничения
Системные базы данных не могут быть присоединены.
Присоединение и отсоединение приводят к отмене межбазовых цепочек владения для базы данных с присваиванием параметру cross db ownership chaining значения 0. Сведения о том, как включить цепочки владения, см. в статье Параметр конфигурации сервера «cross db ownership chaining».
Присоединение скопированной, а не отсоединенной реплицируемой базы данных:
если база данных присоединяется к обновленной версии того же экземпляра сервера, необходимо обновить репликацию после завершения присоединения с помощью хранимой процедуры sp_vupgrade_replication. Дополнительные сведения см. в статье sp_vupgrade_replication (Transact-SQL).
если база данных присоединяется к другому экземпляру сервера (независимо от версии), необходимо удалить репликацию после завершения присоединения с помощью хранимой процедуры sp_removedbreplication. Дополнительные сведения см. в статье sp_removedbreplication (Transact-SQL).
Рекомендации
Не рекомендуется подключать или восстанавливать базы данных, полученные из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.
Обновление базы данных при помощи функций отсоединения и присоединения
Отсоединение базы данных. Дополнительные сведения см. в разделе Отсоединение базы данных.
При необходимости переместите отсоединенные файлы баз данных и файлы журналов.
Файлы журнала и файлы данных следует переместить, даже если планируется создать новые файлы журнала. В некоторых случаях для повторного присоединения базы данных требуются файлы ее существующих журналов. Поэтому всегда храните все файлы отсоединенных журналов, пока база данных не будет успешно присоединена без них.
При попытке присоединить базу данных, не указывая файл журнала, операцией присоединения будет произведен поиск файла журнала в его исходном месте. Если первоначальная копия журнала существует в этом расположении, она будет присоединена. Чтобы избежать применения исходного файла журнала, либо укажите путь к новому файлу журнала, либо удалите исходную его копию (после его копирования в новое место).
Присоедините скопированные файлы к экземпляру SQL Server. Дополнительные сведения см. в статье Attach a Database.
Пример
В следующем примере выполняется обновление копии базы данных предыдущей версии SQL Server. Инструкции Transact-SQL выполняются в окне редактора запросов, подключенном к экземпляру сервера, к которому выполнено присоединение.
Отсоедините базу данных, выполнив следующие инструкции Transact-SQL .
Скопируйте любым способом данные и файлы журнала в новое местоположение.
При работе с производственными базами данных рекомендуется помещать базу данных и журналы транзакций на отдельные диски. Эти диски имеют разные требования к операциям ввода-вывода и росту файлов, и лучше разделить их.
При копировании файлов по сети на диск удаленного компьютера укажите имя удаленного места в формате UNC. UNC-имя принимает форму \\Servername\Sharename\Path\Filename . Как и при записи файлов на жесткий диск локального компьютера, для записи (или считывания) файла на диск удаленного компьютера учетной запись пользователя, которая используется экземпляром SQL Server, должны быть предоставлены соответствующие разрешения.
Присоедините перемещенную базу данных и, если потребуется, ее журнал, выполнив следующую инструкцию Transact-SQL .
В среде SQL Server Management Studioтолько что присоединенная база данных отображается в обозревателе объектов не сразу. Чтобы отобразить базу данных, щелкните в обозревателе объектов пункт Вид , а затем Обновить. Теперь, раскрыв в обозревателе объектов узел Базы данных , можно увидеть в списке присоединенную базу данных.
Дальнейшие действия. После обновления базы данных SQL Server
Если база данных содержит полнотекстовые индексы, то в процессе обновления будет произведен их импорт, сброс или перестроение в зависимости от установленного значения свойства сервера upgrade_option . Если при обновлении выбран режим импорта (upgrade_option = 2) или перестроения (upgrade_option = 0), полнотекстовые индексы во время обновления будут недоступны. В зависимости от объема индексируемых данных процесс импорта может занять несколько часов, а перестроение — в несколько (до десяти) раз больше. Обратите внимание, что если для обновления выбран режим «Импортировать», а полнотекстовый каталог недоступен, то связанные с ним полнотекстовые индексы будут перестроены. Чтобы изменить значение свойства сервера upgrade_option , следует использовать процедуру sp_fulltext_service.
Уровень совместимости баз данных после обновления
После обновления уровень совместимости базы данных останется неизменным, если только он не является в новой версии неподдерживаемым. В последнем случае обновленный уровень совместимости базы данных устанавливается как самый низкий из поддерживаемых.
Например, если подключить к экземпляру SQL Server 2019 (15.x) базу данных, имеющую уровень совместимости 90, то после обновления он будет изменен на 100, что является наименьшим поддерживаемым уровнем для SQL Server 2019 (15.x). Дополнительные сведения см. в разделе Уровень совместимости инструкции ALTER DATABASE (Transact-SQL).
Управление метаданными в экземпляре обновленного сервера
Чтобы обеспечить согласованное функционирование базы данных для пользователей и приложений, когда она присоединяется к другому экземпляру сервера, на другом экземпляре сервера, возможно, понадобится повторно создать некоторые или все метаданные базы данных, например имена входа, задания и разрешения. Дополнительные сведения см. в статье Управление метаданными при обеспечении доступности базы данных на другом экземпляре сервера (SQL Server).
Алгоритм шифрования главного ключа службы и главного ключа базы данных изменяется с 3DES на AES
SQL Server 2012 (11.x) и более поздних версиях для защиты главного ключа службы и главного ключа базы данных используется алгоритм шифрования AES. AES — это новый алгоритм шифрования, отличный от алгоритма 3DES, используемого в более ранних версиях. При первом присоединении базы данных к новому экземпляру SQL Server или ее восстановлении копия главного ключа базы данных (зашифрованная главным ключом службы) еще не хранится на сервере. Необходимо расшифровать главный ключ базы данных с помощью инструкции OPEN MASTER KEY . Как только главный ключ базы данных будет расшифрован, появится возможность разрешить автоматическую расшифровку в будущем с помощью инструкции ALTER MASTER KEY REGENERATE , чтобы оставить на сервере копию главного ключа базы данных, зашифрованного с помощью главного ключа службы. После обновления базы данных с переходом от более ранней версии главный ключ базы данных должен быть создан повторно для использования нового алгоритма шифрования AES. Дополнительные сведения о повторном создании главного ключа базы данных см. в статье ALTER MASTER KEY (Transact-SQL). Время, необходимое для повторного создания главного ключа базы данных с обновлением до алгоритма шифрования AES, зависит от числа объектов, защищаемых главным ключом базы данных. Повторное создание главного ключа базы данных с обновлением до алгоритма шифрования AES необходимо произвести только один раз. Это никак не повлияет на последующие операции повторного создания, выполняемые в соответствии со стратегией смены ключей.
Источник