Sql server 2008 使用WHILE循环创建SQL SERVER 2008 SQL脚本,该循环基于列数组进行更新?

Sql server 2008 使用WHILE循环创建SQL SERVER 2008 SQL脚本,该循环基于列数组进行更新?,sql-server-2008,tsql,Sql Server 2008,Tsql,是否可以将SQL SELECT放入数组中?然后在同一个SQL脚本中执行数组中的每个update语句 SELECT 'UPDATE Table_One SET [' + column_name + '] = '''' WHERE [' + column_name + '] IS NULL;' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Table_One'; 我有一个包含400列的表,希望对每列执行上述选

是否可以将SQL SELECT放入数组中?然后在同一个SQL脚本中执行数组中的每个update语句

SELECT 'UPDATE Table_One SET [' + column_name
        + '] = '''' WHERE [' + column_name + '] IS NULL;'
        FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Table_One';
我有一个包含400列的表,希望对每列执行上述选择

我在考虑一个WHILE循环,SELECT将被放入某种数组中

SQL中是否存在该功能,或者我应该将选择结果放入临时表中?

检查此查询:

DECLARE @query NVARCHAR(Max) = ''
SELECT @query = @query + 'UPDATE Table_One SET ' + column_name
        + ' = '''' WHERE ' + column_name + ' = NULL;' + CHAR(13)
        FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Table_One';

EXEC  sp_executesql  @query

一个表有400列?如果
NULL
无效,您是否考虑过简单地添加一个约束,使违规列
不为NULL
,并附加一个
DEFAULT
约束(在您的情况下,该约束看起来是一个空字符串
'
)@ThitLwinOo-很遗憾,我们无法控制我们继承的东西@DMason在填充#temp_表之前,我可能能够以同样的方式修改表-使用Alter而不是Update。谢谢这是一个很好的解决这类问题的方法。谢谢我将更新我的问题,以反映
为空
和not
=NULL