【发布时间】:2017-05-16 13:49:16
【问题描述】:
我在将数据迁移到我的新 sql server 数据库时犯了一个错误:几乎每条应该为空的记录现在都有一个“空”字符串值。
是否有一种相当快速的方法来更新整个数据库并用真正的空值替换每个“空”记录?
我正在尝试这样的事情:
SELECT ' update ' + TABLE_SCHEMA + '.' + TABLE_NAME + 'set value = null
where value = 'NULL''
FROM INFORMATION_SCHEMA.TABLES
但我正在寻找一些关于如何迭代每个表中的每一列的建议。
【问题讨论】:
-
如果这是一个新数据库,在修复过程之后,简单地删除数据库并重新导入可能会更容易。这当然是在您的测试系统上,对吧??
-
@PrabhatG 这是用 sql server 标记的。您建议的副本是 postgre,它们不是一回事。
-
我不想删除数据库,因为我已经使用批量插入从 db2 导入数据,这是一个相当长的过程;我也尝试使用 ssma 进行自动数据迁移,但无法正常工作
-
请注意,在 TSQL 中,要在变量中获取单引号,您需要使用单引号对其进行转义。 F.e.
set @v = '... where value=''NULL'';';
标签: sql-server null