Термин Update-Database не распознается как имя командлета.
Я использую EF5 beta1, и хотя раньше мне удавалось запускать «Update-Database». Теперь, когда я закрыл Visual Studio, я не могу запустить ее. Я получаю следующую ошибку:
Термин «Update-Database» не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте написание имени или, если был включен путь, убедитесь, что путь правильный, и повторите попытку. В строке: 1 символ: 16 + Update-Database
Я попытался переустановить EF5b1, и хотя все прошло успешно (уже установлено), «Обновление базы данных» по-прежнему не работает. Может кто-нибудь помочь .
задан 12 марта ’12, 21:03
user1265146
Вчера у меня была аналогичная проблема с другим командлетом, и помогла полная перезагрузка системы . — nemesv
Перезагрузка не требуется. После восстановления пакета мы не запускаем скрипты init.ps1 (поэтому команда не найдена). Просто выйдите и перезапустите VS (или выгрузите / перезагрузите проект). — RickAndMSFT
5 Основы запросов SQL Команда редактирования UPDATE
Это случилось со мной сегодня. Я открыл репо для командного проекта, и ему нужно было восстановить некоторые пакеты. После восстановления update-database и add-migration команды не работали. Это исправлено при перезапуске Visual Studio. — jmbertucci
28 ответы
В последнее время у меня неоднократно возникала эта проблема. Я обнаружил, что решение, которое сработало, заключалось в том, чтобы закрыть консоль диспетчера пакетов, закрыть Visual Studio, а затем снова открыть их. Перезагрузка также работала большую часть времени, но не всегда.
ответ дан 14 мая ’12, 19:05
Обычно вам просто нужно выйти из перезапуска VS. См. Мои комментарии в исходном вопросе. В редких случаях может потребоваться дважды выйти / перезапустить VS. — Рикандмсфт
Просто столкнулся с проблемой и перезапустил Visual Studio, и все снова заработало. Спасибо. — Shubh
Спасибо, за действенное, если не сказать хреновое решение. Кажется, это все, что работает из миллиона вещей, которые я пробовал. — ПрофК
Да, конечно. Это решение. Законное решение. Спасибо, Microsoft! — Хатиб321
Я установил «Microsoft.EntityFrameworkCore.Tools» Version = «3.1.0» в свои проекты данных и «Microsoft.EntityFrameworkCore.Design» Version = «3.1.0» в моем основном веб-проекте, что решило проблему для меня. — ХаБо
Если вы используете Entity Framework:
Сообщение об ошибке: Сообщение об ошибке (от команды Update-Database в PMC): термин «Update-Database» не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте написание имени, или если путь был включен, убедитесь, что путь правильный, и повторите попытку «.
Решение: Закройте Visual Studio. Откройте проект и попробуйте еще раз.
Для получения дополнительной информации, пожалуйста, посетите: Advanced Entity Framework 6 сценариев для веб-приложения MVC 5 (12 из 12) Надеюсь это поможет.
Создан 19 ноя.
Команда разработчиков VS должна предоставить кнопку Refresh VS для таких проблем 🙂 — Сохаиб Джавед
Я потерял счет, сколько вещей решает перезапуск Visual Studio — ЕКанадилы
Для всех, кто использует .Net Core и EntityFrameworkCore: Вам нужно будет установить Microsoft.EntityFrameworkCore.Tools пакет для решения этой проблемы. Подробнее здесь: https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell
ответ дан 10 апр.
Переустановка пакета nuget устранила эту проблему для меня т.е. выполнить
Install-Package EntityFramework -Version 5.0.0
в диспетчере пакетов
Создан 21 янв.
У меня это работает. В проекте, над которым я работал, использовался EF, и я автоматически предполагаю, что пакет был установлен. Оказалось, что это не так. Разработчик только что сослался непосредственно на EF dll. Для работы команды Update-Database в проекте должен быть установлен пакет EntityFramework. — стек247
Этот ответ кажется маловероятным, но он спас мне день. Спасибо, — Нельсон Миранда
Сегодняшняя борьба с FK с использованием Fluent API и т. Д., И почему-то EntityFramework продолжает падать. Что на самом деле сработало для меня в этом направлении, так это сделать еще один Update-Package -Reinstall EntityFramework . — Мэтт Борха
для меня переустановить и перезагрузить. просто переустановите не работает, и просто перезагрузка тоже не работает) — Р.М.азитов
Иногда, когда я загружаю VS, я вижу это в консоли диспетчера пакетов:
Значение не может быть нулевым. Имя параметра: путь1
Я пока не знаю, что вызывает это, но похоже, что что-то идет не так во время запуска консоли Powershell, что прерывает регистрацию определенных модулей, таких как расширения EF powershell. Однако вы можете просто загрузить его вручную:
Import-Module .packagesEntityFramework.6.1.1toolsEntityFramework.psm1
Убедитесь, что вы заменили 6.1.1 любой вашей текущей версией Entity Framework.
ответ дан 27 авг.
Спасибо! Единственное решение, которое сработало для меня. Однако для всех, кто использует EF 6.1.3 с VS 2015, есть ошибка в EntityFramework.psm1, и здесь доступен патч. stackoverflow.com/a/30062684/1267778. — парламент
вы получите эту ошибку, если инструменты EF не установлены должным образом. попробуйте следующую команду в диспетчере пакетов Nuget // Удаляет и устанавливает ту же версию EF
Update-Package «EntityFramework» -reinstall
Если вы все еще сталкиваетесь с той же проблемой. создайте новый веб-проект и выполните следующую команду в nuget.
(Примечание: нет необходимости создавать новый проект в том же решении или в том же месте.)
// Это обновит EF до последней версии (включая инструменты) // если вы хотите использовать определенную версию, используйте -version флаг.
Update-Package «EntityFramework»
Как только это будет сделано, отметьте свой исходный проект, и вы сможете удалить вновь созданный проект.
Создан 26 июля ’16, 13:07
Да!! Спасибо =) У меня были установлены только EntityFramwork, EF.Design, EF.SqlServer и EF.SqlServer.Design. — Яннеман96
Просто перезапустите Visual Studio, это решит проблему. Работает на меня.
Создан 07 июн.
Это действительно забавно, как перезагрузка моего компьютера работает с этой проблемой — Принц Тегатон
Установите Microsoft.EntityFrameworkCore.Tools решила проблему для меня, использовала пакеты nuget
ответ дан 19 дек ’19, 04:12
У меня была такая же проблема, и источник ее был на моем имени пути, у меня было на моем пути имя каталога с прямыми скобками, например: C:[PROJ]TestApp . Когда я снял скобки, чтобы C:PROJTestApp , он начал работать нормально .
Создан 17 сен.
Обычно вам просто нужно выйти из перезапуска VS. См. Мои комментарии в исходном вопросе. — Рикандмсфт
Визуальная студия Just ReOpen — это для меня работа
ответ дан 02 авг.
- удалите диспетчер пакетов Nuget.
- перезапустите Visual Studio.
- установил новую версию Nuget Package Manager.
- затем снова запустите Visual Studio.
ответ дан 11 мая ’15, 09:05
Так было со мной, но мне просто нужно было обновить nuget в расширениях и обновить — дуб
это сработало для меня, удалил диспетчер пакетов nuget, повторно установил диспетчер пакетов nuget, перезапустил визуальную студию, удалил EntityFramework, повторно установил EntityFramework — Ризан Заки
Я решил удалить и переустановить Microsoft.EntityFrameworkCore и Microsoft.EntityFrameworkCore.Tools.
Если вы используете EF Core, это правильный ответ. По крайней мере, проблема для меня заключалась в том, что Microsoft.EntityFrameworkCore.Tools не был установлен. — Кирк Уолл
Эта проблема возникает, когда вы открываете проект прямо из проводника. Попробуйте сначала запустить VS, а затем открыть проект — у меня сработало. Я предполагаю, что речь идет о доступе к путям.
ответ дан 30 авг.
после нескольких перезапусков, которые не были решены, это помогло решить мою проблему! — Никлас
Восстановление пакета NuGet мне не помогло. Поэтому мне пришлось переустановить диспетчер пакетов — https://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca Может быть это кому-то поможет
ответ дан 17 авг.
Если другие ответы не работают (VS 2017): очистите кеш NuGet, перезапустите VS, затем восстановите пакеты.
ответ дан 19 дек ’16, 10:12
Я обнаружил, что это произошло из-за поврежденного пакета. Я установил Automapper, когда он уже был установлен. Было ясно только, что этот пакет поврежден, когда я попытался установить другой пакет.
Удаление поврежденного пакета решило эту проблему для меня.
Затем вы можете переустановить автомаппер. Проблема была с версией 5.4, теперь я счастлив на 6.0.
ответ дан 17 мар ’17, в 21:03
Для меня оказалось, что ядро EntityFramework не было установлено в моем проекте (потому что я начал с пустого проекта). Итак, установка EntityFramework пакет решил проблему. Иногда, если установка EntityFramework не удалась, попробуйте установить отдельные пакеты один за другим.
Microsoft.EntityFrameworkCore.Design Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.SqlServer.Design Microsoft.EntityFrameworkCore.Tools
ответ дан 24 апр.
Решил обновлением Консоли диспетчера пакетов.
Я не получал Update-Database в консоли диспетчера пакетов. Затем перезапускаю несколько раз. Также перезапустите Windows.
Потом скачиваю новый из NuGet и тогда это было решено.
ответ дан 04 мая ’17, 18:05
У меня была эта проблема в Visual Studio 2015, и я решил ее, обновив версию Nuget.
Инструменты -> Расширения и обновления -> Обновления -> Галерея Visual Studio
ответ дан 16 мар ’18, в 10:03
Простое исправление для меня заключалось в том, чтобы убедиться, что между обновлением и базой данных есть разрыв, например: update-database и используйте строчные буквы. Это может быть случайным совпадением, но когда я сделал это в консоли диспетчера пакетов, база данных действительно обновилась, и я получил сообщение «Готово», а не сообщение «Готово». not recognized as the name of a cmdlet, function, script file ошибка.
ответ дан 12 дек ’18, 01:12
У меня возникла такая же проблема после того, как я случайно открыл решение Visual Studio с Visual Studio 2015 вместо 2017. Проект работал нормально до этой неудачи. Это был более старый проект с EF 5.0, а не с EF Core.
Я пробовал все, что предлагалось — бесчисленное количество раз перезапускал Visual Studio, очищал кеш NuGet, удалял все в папке пакетов, переустанавливал EF 5 для проекта — ничего хорошего, добавление-миграция не распознавалась. Если я обновил EF до 6, он начал распознавать команды, но я пока не хотел обновляться. Итак, как только я вернулся к EF 5, проблема вернулась.
Единственное, что меня окончательно спасло, — это сделать следующее:
- закрыть Visual Studio
- удалить все из папки пакетов
- удалите папку .vs в корне вашего решения. Эта папка обычно скрыта, вам нужно включить параметр Показать скрытые файлы и папки или установить флажок Скрытые элементы на вкладке просмотра папки
- запустите Visual Studio и откройте свое решение. Он попросит восстановить пакеты NuGet, соглашайтесь.
Теперь команды EF, наконец, снова начали работать.
ответ дан 08 мар ’19, в 16:03
- Перезагрузить проект не помогло
- Перезагрузка VS не помогла
- Перезагрузка компьютера не помогла
- Reinstal EF не помог
Но я нашел гайд где предлагалось вручную импортировать отсутствующий пакет EF с помощью PM Conole:
И это решение решило мою проблему.
ответ дан 11 мар ’19, в 14:03
В моем случае перезапуск Visual Studio (много, много раз) не сработало, затем, когда я искал в другом месте, я обнаружил сообщение на выходном терминале:
Текущий пакет SDK для .NET не поддерживает нацеливание на .NET Core 2.2. Либо целевой .NET Core 2.1 или ниже, либо используйте версию .NET SDK, поддерживающую .NET Core 2.2.
Итак, я установил требуемую версию .NET Core, и команда успешно выполнилась.
ответ дан 14 авг.
У меня была эта проблема в VS 2019 с существующим проектом с использованием EntityFramework 6.3.0. В этот проект вносились некоторые странные изменения версии в течение определенного периода времени, и ничто не могло заставить его работать. Я считаю, что безуспешно пробовал все предложения, перечисленные здесь.
Наконец, обновление до предварительной версии EntityFramework (в настоящее время 6.4.0-preview3-19553-01) действительно устранило проблему, запустив это в консоли диспетчера пакетов: Update-Package EntityFramework -prerelease . Я надеюсь, что когда эта версия будет выпущена в ближайшие несколько недель, она будет работать должным образом.
В моем случае я сделал следующее: — восстановил отсутствующие пакеты NuGet, нажав кнопку «Восстановить» в верхней части консоли диспетчера пакетов — перезапустил Visual Studio — запустить update-database
В большинстве случаев у этих бета-версий есть некоторые проблемы, даже если Entity Framework не удалось загрузить, а также это может произойти, если вы устанавливаете Microsoft.EntityFrameworkCore.Tools глобально. попробуйте установить его локально в свой проект. вы можете попробовать эти шаги, пока не решите проблему. и помните, что этот метод не предназначен для решения проблемы, это другой способ сделать это.
- cd в каталог вашего проекта. а не каталог sln в каталог проекта.
- становятся dotnet ef чтобы узнать, правильно ли вы установили Entity Framework.
- затем использовать dotnet ef migrations add «ReplaceThisWithSomeText» команда. И это создаст новую миграцию.
- затем использовать dotnet ef database update для обновления базы данных.
(Это для проектов EFCore)
ответ дан 24 дек ’20, 10:12
Для меня проблема была в версии Nuget.
Я удалил и переустановил Nuget, затем перезапустил Visual Studio, и все заработало.
У меня тоже такая же проблема, но с Delete-SqlDatabase из SQLPS.
В моем случае я пытался вызвать функцию Delete-SqlDatabase, которую я объявил и использовал в своем коде.
Я совершил ошибку, вызвав функцию, которая была внизу.
Вы видите в PowerShell в порядке, чтобы функция была видимой, вы должны объявить ее сверху. основная функция должна быть последним разделом по найму.
Это такая глупая штука. Я уверен, что вы разобрались с этим за день.
Я знаю, что этот протектор слишком старый, но он может помочь другим людям вроде меня, которые потенциально могут сэкономить часы времени.
ответ дан 11 мая ’21, 12:05
Источник: stackovergo.com
Термин «Update-Database» не распознается как имя командлета
Я использую EF5 beta1, и пока я смог запустить «Update-Database» раньше. Теперь, когда я закрыл Visual Studio, я не могу заставить его работать. Я получаю следующую ошибку:
Термин «Обновление-База данных» не распознается как имя командлета, функции, файла script или исполняемой программы. Проверьте правильность написания имени или, если включен путь, проверьте правильность пути и повторите попытку. На линии: 1 char: 16 + Update-Database < < -подробный + CategoryInfo: ObjectNotFound: (Update-Database: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
Я попытался переустановить EF5b1, и пока он был успешно (уже установлен), «Обновление-База данных» по-прежнему не работает.
Может ли кто-нибудь помочь?
ОТВЕТЫ
Ответ 1
У меня была эта проблема несколько раз в последнее время. Я нашел решение, которое работало, заключалось в том, чтобы закрыть консоль диспетчера пакетов, закрыть Visual Studio и затем снова открыть их. Перезагрузка также работала большую часть времени, но не всегда.
Ответ 2
Если вы используете Entity Framework:
Сообщение об ошибке: «Сообщение об ошибке (из команды» Обновление базы данных «в PMC): термин» Обновление базы данных «не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, убедитесь, что он правильный, и повторите попытку. «
Решение: «Выйдите из Visual Studio. Откройте проект и попробуйте снова».
Надеюсь это поможет.
Ответ 3
Иногда, когда я загружаю VS, я вижу это в консоли менеджера пакетов:
Значение не может быть нулевым.
Имя параметра: путь1
Я понятия не имею, что это за причины, но кажется, что что-то пошло не так во время запуска консоли Powershell, которая прерывает регистрацию определенных модулей, таких как расширения PowerShell EF. Вы можете просто загрузить его вручную:
Import-Module .packagesEntityFramework.6.1.1toolsEntityFramework.psm1
Убедитесь, что вы заменили 6.1.1 любой текущей версией Entity Framework.
Ответ 4
Переустановка пакета nuget исправила эту проблему для меня
Install-Package EntityFramework -Version 5.0.0
в диспетчере пакетов
Ответ 5
Просто перезапустите Visual Studio, это решит проблему. Работает для меня.
Ответ 6
вы получите эту ошибку, если инструменты EF не установлены должным образом.
попробуйте выполнить команду ниже в диспетчере пакетов Nuget // Уничтожает и устанавливает ту же версию EF
Update-Package «EntityFramework» -reinstall
Если вы все еще сталкиваетесь с той же проблемой. создайте новый веб-проект и выполните следующую команду в nuget.
(Примечание: нет необходимости создавать новый проект в том же решении или то же место.)
//Это обновит EF до последней версии (включая инструменты) // если вы хотите использовать определенную версию, используйте флаг -version .
Update-Package «EntityFramework»
Как только это будет сделано, chcek ваш исходный проект, и вы можете удалить вновь созданный проект.
Ответ 7
У меня была такая же проблема, и происхождение ее было по моему имени пути, у меня на моем пути было имя каталога с прямыми скобками, например: C:[PROJ]TestApp .
Когда я удалил скобки, до C:PROJTestApp , он начал работать нормально.
Ответ 8
Просто визуальная студия REOpen работает для меня
Ответ 9
Для меня проблема была в версии Nuget.
- удалить диспетчер пакетов Nuget.
- перезапустить Visual Studio.
- установлена новая версия диспетчера пакетов Nuget.
- затем снова запустите Visual Studio.
Ответ 10
Эта проблема возникает, когда вы открываете проект непосредственно из Проводника. Сначала попробуйте запустить VS, а затем открыть проект — работал у меня. Я предполагаю, что это касается доступа к путям.
Ответ 11
Я решил с помощью удаления и переустановки «Microsoft.EntityFrameworkCore» и «Microsoft.EntityFrameworkCore.Tools»
Ответ 12
Для тех, кто использует .Net Core и EntityFrameworkCore:
Вам нужно будет установить пакет Microsoft.EntityFrameworkCore.Tools для решения этой проблемы.
Ответ 13
В моем случае я сделал следующее: — восстановили отсутствующие пакеты NuGet, нажав кнопку «Восстановить» поверх консоли диспетчера пакетов — перезапущена Visual Studio — запустить «update-databse»
Ответ 14
Восстановление пакета NuGet не помогло мне. Поэтому мне пришлось переустановить диспетчер пакетов — https://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca Может быть, это помогает кому-то
Ответ 15
Если другие ответы не работают (VS 2017): очистите кеш NuGet, перезапустите VS, затем восстановите пакеты.
Ответ 16
Я обнаружил, что это произошло из-за поврежденного пакета. Я установил Automapper, когда он уже был установлен. Было ясно только, что этот пакет был поврежден, когда я попытался установить другой пакет.
Удаление поврежденного пакета решило эту проблему для меня.
Затем вы можете переустановить automapper. Проблема была в версии 5.4, теперь я счастлив в 6.0.
Ответ 17
Для меня оказывается, что ядро EntityFramework не было установлено в моем проекте (потому что я начал с пустого проекта). Поэтому установка пакета EntityFramework решила проблему. Иногда, если установка EntityFramework не удалась, попробуйте установить отдельные пакеты по одному
Microsoft.EntityFrameworkCore.Design Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.SqlServer.Design Microsoft.EntityFrameworkCore.Tools
Ответ 18
Я решил, обновив консоль диспетчера пакетов.
Я не получал Update-Database в консоли диспетчера пакетов. Затем я перезапускаю несколько раз. Также перезапустите Windows.
Затем я загружаю новый из nuget, после чего он был решен.
Ответ 19
У меня была эта проблема в Visual Studio 2015, и я решил ее, обновив версию Nuget.
Сервис → Расширения и обновления → Обновления → Галерея Visual Studio
Ответ 20
Простым решением для меня было убедиться, что между обновлением и базой данных есть черта, например: update-database и использовать строчные буквы. Это может быть случайным, но когда я сделал это в консоли диспетчера пакетов, база данных фактически обновилась, и я получил сообщение о готовности, а не not recognized as the name of a cmdlet, function, script file ошибки not recognized as the name of a cmdlet, function, script file .
Ответ 21
У меня возникла та же проблема после того, как я случайно открыл решение Visual Studio с Visual Studio 2015 вместо 2017 года. До этого неудачного прохождения проект работал нормально. Это был старый проект с EF 5.0, а не EF Core.
Я попробовал все предложенное — перезапускал Visual Studio бесчисленное количество раз, очищал кеш NuGet, удалял все в папке пакетов, переустанавливал EF 5 для проекта — ничего хорошего, добавление-миграция не была распознана. Если я обновил EF до 6, он начал распознавать команды, но я пока не хотел обновляться. Итак, как только я вернулся к EF 5, проблема вернулась.
Единственное, что, наконец, спасло меня, это сделать следующее:
- закрыть Visual Studio
- удалить все из папки с пакетами
- удалите папку .vs в корне вашего решения. Эта папка обычно скрыта, необходимо включить параметр «Показать скрытые файлы и папки» или установить флажок «Скрытые элементы в папке».
- запустите Visual Studio и откройте свое решение. Он попросит восстановить пакеты NuGet, согласитесь на это.
Теперь команды EF наконец начали работать снова.
Ответ 22
- Перезагрузка проекта не помогла
- Перезапуск VS не помог
- Перезагрузка компьютера не помогла
- Переустановка EF не помогла
Но я нашел статью, в которой предлагалось вручную импортировать отсутствующий пакет EF с помощью PM Conole:
И это решение решило мою проблему.
Ответ 23
В моем случае перезапуск Visual Studio (много-много раз) не работал, тогда, как я искал в другом месте, я обнаружил сообщение на выходном терминале:
Текущий .NET SDK не поддерживает таргетинг на .NET Core 2.2. Или предназначайтесь для .NET Core 2.1 или ниже, или используйте версию .NET SDK, которая поддерживает .NET Core 2.2.
Поэтому я установил требуемую версию .NET Core, и команда была успешно выполнена.
Ответ 24
Для меня проблема была в версии Nuget.
Я удалил и снова установил Nuget, затем перезапустил Visual Studio, а затем все начали работать.
Источник: utyatnishna.ru
Что такое » db_updater.exe » ?
В нашей базе содержится 2 разных файлов с именем db_updater.exe . You can also check most distributed file variants with name db_updater.exe. Чаще всего эти файлы принадлежат продукту ComputerBild DataBase. Наиболее частый разработчик — компания SCHWARZ. Самое частое описание этих файлов — Модуль обновления программы ComputerBild DataBase. Это исполняемый файл.
Вы можете найти его выполняющимся в диспетчере задач как процесс db_updater.exe.
Подробности о наиболее часто используемом файле с именем «db_updater.exe»
Продукт: ComputerBild DataBase Компания: SCHWARZ Описание: Модуль обновления программы ComputerBild DataBase Версия: 1.5.3.0 MD5: d1a81b30ce08c333bff19184f0842e66 SHA1: cb381f655c5a099fb47227152f2139d10109326a SHA256: a04ff23c81b61c5e97200bc27405a8bf9c6d88ba4f931d5fa722d9ee05b45a74 Размер: 442368 Папка: %PROGRAMFILES%ComputerBild DataBase 4 ОС: Windows XP Частота: Низкая
Проверьте свой ПК с помощью нашей бесплатной программы
System Explorer это наша бесплатная, удостоенная наград программа для быстрой проверки всех работающих процессов с помощью нашей базы данных. Эта программа поможет вам держать систему под контролем.
Процесс «db_updater.exe» безопасный или опасный?
Последний новый вариант файла «db_updater.exe» был обнаружен 3765 дн. назад.
Комментарии пользователей для «db_updater.exe»
У нас пока нет комментариев пользователей к файлам с именем «db_updater.exe».
Добавить комментарий для «db_updater.exe»
Для добавления комментария требуется дополнительная информация об этом файле. Если вам известны размер, контрольные суммы md5/sha1/sha256 или другие атрибуты файла, который вы хотите прокомментировать, то вы можете воспользоваться расширенным поиском на главной странице .
Если подробности о файле вам неизвестны, вы можете быстро проверить этот файл с помощью нашей бесплатной утилиты. Загрузить System Explorer.
Проверьте свой ПК с помощью нашей бесплатной программы
System Explorer это наша бесплатная, удостоенная наград программа для быстрой проверки всех работающих процессов с помощью нашей базы данных. Эта программа поможет вам держать систему под контролем. Программа действительно бесплатная, без рекламы и дополнительных включений, она доступна в виде установщика и как переносное приложение. Её рекомендуют много пользователей.
Источник: systemexplorer.net
Инструкция UPDATE в T-SQL — обновление данных в Microsoft SQL Server
Всем привет! Сегодня в материале я расскажу о том, как происходит обновление данных в Microsoft SQL Server с использованием языка T-SQL, будет рассмотрена инструкция UPDATE. Иными словами, Вы узнаете, как изменить уже существующие данные в таблицах на SQL Server.
Ранее я уже рассказывал о том, как создаются таблицы, как они изменяются, как происходит добавление данных в эти таблицы, поэтому пришло время рассказать о том, как происходит изменение (обновление) существующих данных.
Заметка!
Упомянутые выше материалы:
- Создание таблиц в Microsoft SQL Server (CREATE TABLE);
- Изменение таблиц в Microsoft SQL Server (ALTER TABLE);
- Добавление данных в таблицы (INSERT INTO).
Заметка! Для комплексного изучения языка T-SQL рекомендую посмотреть мои видеокурсы по T-SQL, в которых используется последовательная методика обучения и рассматриваются все конструкции языка SQL и T-SQL.
Как обновить данные в таблицах Microsoft SQL Server?
Изменить данные в таблицах Microsoft SQL Server можно с помощью:
- Инструкции UPDATE;
- Конструктора SQL Server Management Studio (SSMS).
Однако в реальности обновление данных происходит только с использование инструкции UPDATE, так как использовать конструктор SSMS для каких-то массовых изменений невозможно, даже процесс обновления одного значения крайне неудобен. Поэтому я не использую конструктор, мне кажется, его мало кто использует.
Поэтому сегодня мы подробно поговорим об инструкции UPDATE.
Описание инструкции UPDATE в T-SQL
UPDATE – инструкция SQL, с помощью которой происходит изменение существующих данных в таблицах.
Важные моменты:
Упрощенный синтаксис UPDATE
Синтаксис UPDATE достаточно большой, и начинающим понять его сложно, поэтому, для того чтобы было проще понять логику формирования инструкции UPDATE, я приведу упрощенный синтаксис.
UPDATE Целевая таблица SET Имя столбца = Значение
FROM Таблица источник
- UPDATE – инструкция обновления;
- Целевая таблица – таблица, данные в которой необходимо изменить;
- SET – команда, которая задает список обновляемых столбцов. Каждый следующий столбец указывается через запятую;
- Имя столбца – столбец, в котором расположены данные, которые необходимо изменить;
- Значение – новое значение, на которое необходимо изменить значение столбца. Можно указывать как конкретное значение, так и расчётное выражение, функцию или подзапрос. Также можно указать ключевое слово DEFAULT, что будет означать, что столбцу необходимо присвоить значение по умолчанию;
- FROM – секция, которая указывает таблицу, из которой необходимо взять новое значение столбца. Секция может содержать объединение JOIN;
- Таблица источник – таблица, в которой расположено новое значение столбца;
- WHERE – условие отбора строк, подлежащих обновлению.
Примеры использования инструкции UPDATE
Сейчас давайте рассмотрим несколько примеров SQL инструкций, которые будут обновлять данные в таблице инструкцией UPDATE.
Исходные данные для примеров
Для начала давайте определимся с исходными данными, чтобы Вы понимали, какие именно данные у нас есть, и что мы будем обновлять.
Также сразу скажу, что в качестве SQL сервера у меня выступает версия Microsoft SQL Server 2017 Express.
Следующая инструкция создает таблицы, которые мы будет использовать в примерах, и добавляет в них данные.
—Создание таблицы Goods CREATE TABLE Goods ( ProductId INT IDENTITY(1,1) NOT NULL CONSTRAINT PK_ProductId PRIMARY KEY, Category INT NOT NULL, ProductName VARCHAR(100) NOT NULL, ProductDescription VARCHAR(300) NULL, Price MONEY NULL, ); GO —Создание таблицы Categories CREATE TABLE Categories ( CategoryId INT IDENTITY(1,1) NOT NULL CONSTRAINT PK_CategoryId PRIMARY KEY, CategoryName VARCHAR(100) NOT NULL ); —Добавление строк в таблицу Categories INSERT INTO Categories(CategoryName) VALUES (‘Комплектующие ПК’), (‘Мобильные устройства’); GO —Добавление строк в таблицу Goods INSERT INTO Goods(Category, ProductName, ProductDescription, Price) VALUES (1, ‘Системный блок’, ‘Товар 1’, 300), (1, ‘Монитор’, ‘Товар 2’, 200), (2, ‘Смартфон’, ‘Товар 3’, 100); GO —Выборка данных SELECT * FROM Goods; SELECT * FROM Categories;
Пример обновления одного столбца всех строк таблицы
В этом примере мы обновим значения одного столбца, при этом никаких условий мы делать не будем, т.е. обновим все строки в таблице.
Для наглядности и удобства отслеживания внесенных изменений я буду во всех примерах перед и после UPDATE посылать простой запрос SELECT, чтобы видеть, какие данные были и какие стали.
—Выборка данных SELECT * FROM Goods; —Обновление UPDATE Goods SET ProductDescription = ‘Товар’; —Выборка данных SELECT * FROM Goods;
Как видите, в итоге получился очень простой запрос на обновление, мы обновили значения в столбце ProductDescription у всех строк на «Товар».
Пример обновления двух столбцов и только некоторых строк таблицы
Теперь давайте обновим два столбца, и конкретизируем строки для обновления, т.е. мы обновим не все строки в таблице, как в предыдущем примере, а только те, которые подходят под указанное нами условие (для примера Category с идентификатором 1).
—Выборка данных SELECT * FROM Goods; —Обновление UPDATE Goods SET ProductDescription = ‘Товар NEW’, Price = 400 WHERE Category = 1; —Выборка данных SELECT * FROM Goods;
В этом случае изменились значения столбцов ProductDescription и Price в строках, в которых Category = 1.
Пример использования выражений в инструкции UPDATE
Как я уже отмечал, в качестве нового значения может выступать не только какое-то конкретное значение, но и целое выражение, в котором могут использоваться как другие столбцы таблицы, так и столбец, который в данный момент обновляется.
В следующем примере в столбец ProductDescription мы добавим дополнительный текст (просто цифру 3), а значение Price мы увеличим в полтора раза. Все это мы сделаем для строки с Category = 2.
—Выборка данных SELECT * FROM Goods; —Обновление UPDATE Goods SET ProductDescription = ProductDescription + ‘ 3’, Price = Price * 1.5 WHERE Category = 2; —Выборка данных SELECT * FROM Goods;
Пример обновления данных таблицы на основе данных другой таблицы
Достаточно часто требуется обновить данные одной таблицы на основе данных другой, например, просто скопировать данные. Это можно сделать за счет объединения нужных таблиц в инструкции UPDATE. При этом существует несколько способов объединения, я покажу два.
Для примера здесь мы скопируем название категорий из таблицы Categories, и вставим их в столбец ProductDescription таблицы Goods, объединять будем по идентификатору категории.
—Выборка данных SELECT * FROM Goods; —Обновление —Способ 1 UPDATE G SET ProductDescription = C.CategoryName FROM Goods G INNER JOIN Categories C ON G.Category = C.CategoryId; —Способ 2 (эквивалент) UPDATE Goods SET ProductDescription = C.CategoryName FROM Categories C WHERE Goods.Category = C.CategoryId; —Выборка данных SELECT * FROM Goods;
Пример обновления данных с использованием подзапроса
В этом примере я покажу, как можно использовать подзапрос в инструкции UPDATE. Для примера мы подсчитаем количество товаров в каждой категории и присвоим полученное значение столбцу ProductDescription.
Для того чтобы узнать количество товаров, мы будем использовать встроенную функцию COUNT, а для преобразования числа в строку — функцию CAST. Фильтровать строки в подзапросе мы будем по идентификатору категории, значение для сравнения будем получать из основного запроса.
—Выборка данных SELECT * FROM Goods; —Обновление UPDATE Goods SET ProductDescription = ‘Всего товаров: ‘ + (SELECT CAST(COUNT(*) AS VARCHAR(10)) FROM Goods G WHERE G.Category = Goods.Category); —Выборка данных SELECT * FROM Goods;
Как видите, все отработало так, как мы задумали.
Видео-инструкция по обновлению данных в Microsoft SQL Server
У меня на этом все, надеюсь, материал был Вам полезен, пока!
Источник: info-comp.ru
Database Update
Программы / Разное / Database Update
![]() |
Скачать Database Update | ![]() |
Для скачивания будет предоставлена ссылка на дистрибутив программы на сайте компании-разработчика.
Источник: www.obnovisoft.ru