【问题标题】:How To Fill All Null Values In Table with Stored Procedure如何用存储过程填充表中的所有空值
【发布时间】:2014-01-15 23:26:24
【问题描述】:

感谢您对此的评论

我很容易遇到问题,我知道你们会解决的

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

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

如果这个 SP 将返回所有列中所有空值的计数,那就太棒了

非常感谢

【问题讨论】:

标签: sql sql-server stored-procedures sqldatatypes


【解决方案1】:

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

我希望这会有所帮助。

【讨论】:

  • 感谢用户...。你说得对,这张桌子有一些类型,我忘记了
【解决方案2】:
Update Table1
set col1='0'
where co1 is null

等等……

【讨论】:

  • 假设col1是一个数字列(“将数字列中的所有空单元格填充为0”),为什么你使用单引号作为数字/整数常量:'0'?跨度>
【解决方案3】:

您可以按上述方式进行更新,但如果您需要将默认字段设为 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 

通常问题不在于进行修复,而在于修复修复的方式

【讨论】:

    猜你喜欢
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2023-03-17
    相关资源
    最近更新 更多