在SQL Server上,是否可以为一行设置一组列为null?

时间:2017-03-16 17:51:10

标签: sql sql-server

假设我有一个包含20列的表格。 有可能做这样的事情:

UPDATE Tbl SET (COLUMN1,COLUMN2,COLUMN4,COLUMN9) = null WHERE ID=4

或者我必须这样做?

UPDATE Tbl SET COLUMN1=NULL,COLUMN2=NULL,COLUMN4=NULL,COLUMN9=NUll WHERE ID=4

由于

2 个答案:

答案 0 :(得分:1)

这个sintax(不是假单元到单值)

 UPDATE Tbl 
 SET COLUMN1 = null,
     COLUMN2 = null,
     COLUMN4 = null,
     COLUMN9  = null 
 WHERE ID=4

答案 1 :(得分:1)

当然你必须这样做:

UPDATE Tbl SET COLUMN1=NULL,COLUMN2=NULL,COLUMN4=NULL,COLUMN9=NUll WHERE ID=4

这是sql语法,我们无法改变它,但是如果你有很多列,并且你想避免每个列的写查询/值,你可以动态创建sql脚本并执行它,请参阅:

Declare @DynamicColumns NVARCHAR(MAX)
Declare @SQL NVARCHAR(MAX)

SET @DynamicColumns ='Write here stuff to retrieve columns with value dynamically. e.g : Column1=value1,Column2=value1 '

SET @SQL = 'UPDATE Table1 SET '+@DynamicColumns+' WHERE ID=100'

EXEC(@SQL)