首页 > 解决方案 > 减少 T-SQL 中插入中的值重复

问题描述

我正在尝试改进一个由前开发人员编写的 T-SQL 过程,你可以看到它包含大量的 Null:

    INSERT INTO #titles
    VALUES (
        NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,'ABDABCABSBD'
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL
        ,NULL

我不想更改插入到表#title 中的数据(这是必要的)。我需要做的是存储一定数量的数据(例如这里,@storing15Null中的多个Null),以便直接使用这个变量而不是每次定义表#title时复制15次Null。

IF @Group = 11
BEGIN
    INSERT INTO #titles
    VALUES (
                @storing15Null
                ,'ZZZZZZ'
                ,'PPPPP'
                @storing10Null)
END

ELSE IF @Group = 17
BEGIN
    INSERT INTO #titles
    VALUES (
                @storing15Null
                ,'ABCABCABC'
                @storing15Null)
 END

例如,使用变量或任何允许我存储特定数量的项目的东西,这些项目将转到 VALUES。

标签: sqlsql-servertsql

解决方案


任何具有默认值的列根本不需要指定。由于可空列的默认值为NULL,因此您可以简单地将它们从INSERT语句中删除。

为此,您需要明确指定列名,您应该始终这样做,因为列可以重新排序:

INSERT INTO #titles
   (col16, col17)
VALUES
   ('ZZZZZZ', 'PPPPP');

推荐阅读