如何使SQL Server中的值改为空/空(许多列)?

时间:2018-08-23 14:53:33

标签: sql sql-server

我有一个包含150列的表,而且我不知道如何删除这些" "值。我已经看到了一些针对单列的解决方案,但是由于我有很多解决方案,所以我想为每个列都提供一个解决方案...不确定是否可行?

我尝试过:

USE master

UPDATE [master].[dbo].[csvimport] 
SET value = NULL 
WHERE value = " "

根据我的研究发现,但它告诉我:

  

第207级状态1的状态2行
  无效的列名“值”。

     

第207级状态1的状态2行
  无效的列名''。

我看过:

SELECT NULLIF(null_column, 0) AS null_column 
FROM [master].[dbo].[csvimport]

但这一次只能用于一列。我宁愿不做150次...

1 个答案:

答案 0 :(得分:0)

这将导致一堆SQL语句运行。或者,您也可以将其游标。我对您的搜索词“”有点困惑,这不是tsql逻辑。

declare @tablename varchar(100) ='[Enter your table name]'

select 'Update '+ @tablename + ' set ' +  quotename(column_name) + '=null where '+  quotename(column_name) + '='' '''
from INFORMATION_SCHEMA.columns
where TABLE_NAME = @tablename

为帮助您了解此查询,请运行此命令。其余的是围绕它动态构建SQL:

select quotename(column_name),*
from INFORMATION_SCHEMA.columns