Используя T-SQL, я хотел бы выполнить оператор UPDATE, который УСТАНОВИТ столбцы, только если соответствующие переменные определяются.
Вот простой pseudo-tsql пример того, что я пытаюсь выполнить:
--Declaring vars
@ID int,
@Name nvarchar(20),
@Password nvarchar(10)
--Run the update
UPDATE User
SET
IF LEN(@NAME) > 0
Name = @Name,
IF LEN(@Password) > 0
Password = @Password
Из того, что я могу сказать путем чтения, как, ЕСЛИ условия работают в T-SQL, для выполнения того же результата как вышеупомянутый псевдо код, я должен был бы создать оператор UPDATE для каждого, ЕСЛИ условие - который является тем, что я стараюсь не иметь необходимость сделать.
Действительно ли возможно динамично УСТАНОВИТЬ поля/столбцы на основе условия с помощью только одного оператора UPDATE? - Если так, как?
Выражение CASE
UPDATE User
SET
Name = CASE WHEN LEN(@NAME) > 0 THEN @Name ELSE Name END,
Password = CASE WHEN LEN(@Password) > 0 THEN @Password ELSE Password END
WHERE
...