2015-07-24 2 views
-2

Я хочу обновить столбцы базы данных, которые не являются нулевыми, но я хочу, чтобы некоторые из них были обновлены. Остальные из них должны быть старыми. Как я могу справиться с этой проблемой с помощью хранимой процедуры SQL Server.Обработка столбцов базы данных, отличных от NULL, с нулевыми значениями

+0

Можете ли вы привести какие-либо примеры из вашей проблемы? Я не понимаю, в чем проблема. – msmolcic

+0

@msmolcic У меня 8 столбцов, все они не классифицируются по нулевой категории. StudentID, StudentName, StudentAdress StudentPhoneNumber В запросе на обновление пользователь хочет обновить любой столбец среди восьми, я хочу, чтобы все остальные значения были сохранены старыми, а обновленные - новые в моем текстовом поле, какую проверку я должен поставить, потому что у меня есть чтобы вставить все столбцы, которые не имеют места в запросе обновления – Kamran

+1

@Kamran, вы должны отредактировать исходный вопрос, чтобы включить больше этой информации, иначе вы получите кучу downvotes. –

ответ

2

Базовый синтаксис сделать условный update где вы хотите, чтобы исключить некоторые ненулевые значения будет что-то вроде этого:

UPDATE t1 
SET t1.col2 = update_value 
FROM table1 t1 
WHERE t1.col1 IS NOT NULL 
    AND NOT EXISTS (
     SELECT 1 
     FROM table1 
     WHERE t1.id = t2.id 
      AND t.col1 IN ('value1','value2') --values you don't want to update 
        ); 

Если у вас есть меньше значения, которые должны быть обновлены, а не те вам не нужно обновлять его, вы можете просто сделать это:

UPDATE t1 
SET t1.col2 = update_value 
FROM table1 t1 
WHERE t1.col1 IS NOT NULL 
AND t.col1 IN ('value1','value2'); --values you want to update 
Смежные вопросы