我有一个包含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次...
答案 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