如何使用存储过程填充表中的所有空值

时间:2013-12-28 16:03:25

标签: sql sql-server stored-procedures sqldatatypes

感谢您对此进行审核

我很容易出问题,我知道它会解决你的问题

我有一个包含14列的表,8个cols是数字(int,biging,numeric(18,0))和 其他cols数据类型的文本值如char(10),varchar(255),Nvarchar(4000)  此表由相同的随机值填充,并且在所有cols(ID除外)中都有很多空值。

我想创建一个或多个存储过程,将数字列中的所有空单元格填充为0和 字符串列中的所有空值都为“无值”。

如果此SP将返回所有列中所有空值的计数,那就太惊人了

非常感谢

3 个答案:

答案 0 :(得分:1)

Update Table1
set col1='0'
where co1 is null

等等......

答案 1 :(得分:1)

您可以按照上述说明进行更新,但如果您需要将默认字段设置为0,那么您应该在创建表格时使用默认值

CREATE TABLE dbo.Something
(
    id               INT IDENTITY(1, 1),
    col1        INT DEFAULT 0
)

但是如果它的遗留代码比插入proc那样你可以像

一样使用
CREATE PROCEDURE [dbo].[spa_CRUDSomething]
    @flag CHAR(1)
   ,  @col1 INT = 0
AS 

通常问题不在于修复而是修复修复

答案 2 :(得分:1)

您可以在存储过程中使用循环,但最好的方法是检查所有列的空值,因为可能是任何列都有各种数据类型。

我希望这会有所帮助。