我们的常驻数据库专家告诉我们,数字表非常宝贵。我不太明白为什么。这是一个数字表:
USE Model
GO
CREATE TABLE Numbers
(
Number INT NOT NULL,
CONSTRAINT PK_Numbers
PRIMARY KEY CLUSTERED (Number)
WITH FILLFACTOR = 100
)
INSERT INTO Numbers
SELECT
(a.Number * 256) + b.Number AS Number
FROM
(
SELECT number
FROM master..spt_values
WHERE
type = 'P'
AND number <= 255
) a (Number),
(
SELECT number
FROM master..spt_values
WHERE
type = 'P'
AND number <= 255
) b (Number)
GO
根据博客文章,给出的理由是
数字表确实是无价之宝。我一直在使用它们进行字符串操作,模拟窗口函数,用大量数据填充测试表,消除游标逻辑以及许多其他任务,如果没有它们,它们将变得异常困难。
但是我不知道这些用途到底是什么—您能否提供一些令人信服的具体示例,说明“数字表”在SQL Server中为您节省了大量的工作—为什么我们应该使用它们?