将null varchar字段替换为整个数据库的空字符串

时间:2011-06-13 20:31:48

标签: sql tsql

我正在为客户重建遗留程序......数据库设计得相对完善我唯一不关心的是所有null varchar值...(个人不关心这个我的客户代码...)

我正在尝试用空字符串替换所有null varchar列...通常我会在我的导入脚本中执行此操作,但我不需要修改架构,因此我不打算执行导入脚本。 ..

想知道你们中的任何人是否熟悉SQL人员/女孩知道foreach的方法(db中的varchar列)用''有点东西替换null?

我知道必须有办法... P.S. MSSQL 2008r2 DB

2 个答案:

答案 0 :(得分:3)

我个人认为用空字符串替换null是个坏主意。

但你要求它,所以这里是

UPDATE table1 SET field1 = '' WHERE field1 IS NULL

另一个选择是在你的select语句中解决它:

SELECT coalesce(field1, '') as field1_excl_nulls FROM table1 

这将使用空字符串替换输出中的null,同时仍将空值留在数据库中。

答案 1 :(得分:1)

为此,您可以构建动态SQL语句:

  declare @sSQl nvarchar(max)=''
SELECT  
@sSQl=@sSQl+'UPDATE ['+TABLE_NAME+ '] SET ['+COLUMN_NAME+']='''''+' WHERE ['+COLUMN_NAME+ '] IS NULL'+CHAR(13)
 FROM  INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE LIKE '%CHAR%'

exec sp_executesql @ssql
相关问题