У меня есть таблица с несколькими столбцами, которые допускают NULL. Как мне написать SQL-запрос, который позволит мне пропустить этот столбец в обновлении, если значение «пусто». Должен ли я использовать логический флаг, сообщающий запросу об обновлении этого значения? Я делаю что-то подобное в SELECT, как это
SELECT * FROM table WHERE (@boolFlag = 1 OR col1 = @col1Val)
Но попытка сделать это для обновления оказалась бесполезной. В идеале я мог бы сказать пропустить это значение, если оно истинно, иначе обновить более 20 столбцов. Прямо сейчас я не могу передать DBNull.Value, поэтому вместо этого мне приходится вставлять "", который преобразуется в пробел (например, мой nvarchar(50) имеет 50 пробелов).
Я использую базу данных/таблицу SQL Server и набор данных в VB.NET, создавая свои запросы в VS2k8, если это имеет значение.