sql - 减少 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。
解决方案
任何具有默认值的列根本不需要指定。由于可空列的默认值为NULL
,因此您可以简单地将它们从INSERT
语句中删除。
为此,您需要明确指定列名,您应该始终这样做,因为列可以重新排序:
INSERT INTO #titles
(col16, col17)
VALUES
('ZZZZZZ', 'PPPPP');
推荐阅读
- processing.js - sqrt(-1) 坏了。发生了什么?
- c - 读取写入内存空间
- javascript - Cors 域问题
- google-chrome - 允许 Chrome 应用通过 Windows 防火墙
- java - Tomcat在部署战争时卡住了
- python - 在 python 脚本中修复“TypeError:'_io.TextIOWrapper' 对象不可下标”
- time - BFS 和 DFS 的时间和空间复杂度,在 AdjacencyMatrix 和 AdjacencyList 中的 Graph 上
- amazon-web-services - AppSync - creating nested mutation with array and objects?
- tensorflow - Out Of Memory when running multi-gpu cnn with TensorFlow
- ssl - Is this a valid Set-Cookie syntax