Хобрук: Ваш путь к мастерству в программировании

Пропустить обновление строки SQL с пустыми значениями?

У меня есть таблица с несколькими столбцами, которые допускают NULL. Как мне написать SQL-запрос, который позволит мне пропустить этот столбец в обновлении, если значение «пусто». Должен ли я использовать логический флаг, сообщающий запросу об обновлении этого значения? Я делаю что-то подобное в SELECT, как это

SELECT * FROM table WHERE (@boolFlag = 1 OR col1 = @col1Val)

Но попытка сделать это для обновления оказалась бесполезной. В идеале я мог бы сказать пропустить это значение, если оно истинно, иначе обновить более 20 столбцов. Прямо сейчас я не могу передать DBNull.Value, поэтому вместо этого мне приходится вставлять "", который преобразуется в пробел (например, мой nvarchar(50) имеет 50 пробелов).

Я использую базу данных/таблицу SQL Server и набор данных в VB.NET, создавая свои запросы в VS2k8, если это имеет значение.

16.09.2010

  • Можете ли вы предоставить нам образец набора данных до и после желаемого обновления? 16.09.2010

Ответы:


1

Вы можете сделать:

update MyTable
set MyColumn = case when @MyColumnValue = '' then null else @MyColumnValue end

Краткая форма вышеизложенного будет:

update MyTable
set MyColumn = case when @MyColumnValue <> '' then @MyColumnValue end
16.09.2010
  • Я должен буду попробовать это тогда. Спасибо за быстрый ответ. 16.09.2010
  • Хорошо, это решение оказалось правильным ответом. Единственное, что мне нужно было сделать после создания SQL-запроса, это пойти и установить параметры в VS2k8 (обычно, предваряя их знаком @, они создаются для меня, но по какой-то причине они не находятся внутри блока case). 17.09.2010
  • Новые материалы

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..