我们有一大堆宽表(每个40-80列)有一个数据库,并且刚刚发现一个将NULL值引入大约500条记录的错误。 NULL值可以出现在任何列中(所有列都是整数列,请参见下图),但这些NULL值导致我们的某个报告系统无法轻松更改的问题。我们需要用一个特定的静态值(在本例中为99)替换NULL值,但是由于这个改变必须以250列以上的每列为基础进行,所以我宁愿不编写单独的TSQL脚本来更新每列一个。使用列级别WHERE子句更新多列中的所有SQL NULL值?
我的大脑现在太炒了一个聪明的解决方案,所以我的问题是如何使用简单和可读的SQL查询在一个表(或更好的多个表)上的所有列上执行此任务。我可以使用连锁WHERE (Answer_1 IS NULL) OR (Answer_2 IS NULL) OR ...
甚至每个表的管理ID号隔离足够容易的记录,但在更新时,此子句不适用于每列不是每列的where子句。有什么建议?
这是从4页不同的表数的记录的查询示例:
这真的很糟糕。 – 2010-10-15 02:05:55
我想我会添加一个非空约束与每个列的默认值99? – njzk2 2012-05-03 15:48:49
我看着这个,问自己为什么列不是以下内容:管理ID,InstrumentID,AnswerID,值。哎呀,你甚至可以添加另一个ID,以便您可以将所有这些表合并为1 ... – 2017-10-10 07:29:53