Sql server 若列不为null,则更新,若为null,则保留为null

Sql server 若列不为null,则更新,若为null,则保留为null,sql-server,tsql,Sql Server,Tsql,我有以下SQL: UPDATE TableA SET first_name = 'AAA', last_name = 'BBB', address1 = '123', address2 = 'Fake St.,', phone = '1234567', id = '11223344' 如果每个列不为空,我应该使用什么来更新它?这是另一种不太详细(也不太可读)的方法: update tableA set first_name = case when fir

我有以下SQL:

UPDATE TableA
SET first_name = 'AAA',
    last_name = 'BBB',
    address1 = '123',
    address2 = 'Fake St.,',
    phone = '1234567',
    id = '11223344'

如果每个列不为空,我应该使用什么来更新它?

这是另一种不太详细(也不太可读)的方法:

update tableA
set first_name = case when first_name is null then null else 'aaa' end,
last_name = case when last_name is null then null else 'bbb' end,
...

第一个\u名称不为空时的案例,然后是“aaa”结束
,因为对于未处理的案例,存在隐式
else null
UPDATE TableA
SET first_name = left(  'AAA' + first_name, 3 )  ,
    last_name = left(  'BBB' + last_name, 3 )  ,
    address1 = left(  '123' + address1, 3 )  ,
    address2 = left(  'Fake St.,' + address2, len( 'Fake St.,' ) )  ,
    ...