Sql server 如何填充仅包含标识列的表?

Sql server 如何填充仅包含标识列的表?,sql-server,Sql Server,考虑下表 CREATE TABLE [dbo].[Numbers] ( [Id] [INT] IDENTITY(1,1) NOT NULL ) ON [PRIMARY] 如何填充它 如果我添加一列文本nchar20,那么我可以用以下内容填充它: insert into numbers (text) values ('') 但是,如果除了标识之外没有其他列,我该怎么办 insert into numbers ( ) values ( ) 这会抛出一个错误 附近的语法不正确 我想用它来

考虑下表

CREATE TABLE [dbo].[Numbers]
(
    [Id] [INT] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
如何填充它

如果我添加一列文本nchar20,那么我可以用以下内容填充它:

insert into numbers (text) values ('')
但是,如果除了标识之外没有其他列,我该怎么办

insert into numbers ( ) values ( )
这会抛出一个错误

附近的语法不正确

我想用它来查找缺少序列号的问题。

指定默认值:

或者,您甚至可以使用:

样本:

CREATE TABLE [dbo].[Numbers](
    [Id] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY];

DECLARE @Start INT=1;
DECLARE @End INT=100;

SET IDENTITY_INSERT [dbo].[Numbers] ON;
WITH Gen AS (
    SELECT @Start AS Num
    UNION ALL
    SELECT Num + 1 FROM Gen WHERE Num + 1 <= @End
)
INSERT INTO [dbo].[Numbers] (Id)
SELECT Num 
FROM Gen
OPTION (maxrecursion 100);

SET IDENTITY_INSERT [dbo].[Numbers] OFF;

SELECT *
FROM [dbo].[Numbers];

我认为你不应该有一个1列标准化的表格,如果你想识别缺失的数字,为什么不使用理货表呢?@Lamu谢谢。我查了一下athttps://blogs.technet.microsoft.com/benjamin/2018/02/06/sql-tip-the-tally-table/L 一个R N U。没有M。啊,我的视力,对不起@Larnu
SET IDENTITY_INSERT YourTable ON;  
GO 
INSERT INTO YourTable (IdentityColumn) VALUES
(1),
(2),
(3);
GO
SET IDENTITY_INSERT YourTable OFF;
CREATE TABLE [dbo].[Numbers](
    [Id] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY];

DECLARE @Start INT=1;
DECLARE @End INT=100;

SET IDENTITY_INSERT [dbo].[Numbers] ON;
WITH Gen AS (
    SELECT @Start AS Num
    UNION ALL
    SELECT Num + 1 FROM Gen WHERE Num + 1 <= @End
)
INSERT INTO [dbo].[Numbers] (Id)
SELECT Num 
FROM Gen
OPTION (maxrecursion 100);

SET IDENTITY_INSERT [dbo].[Numbers] OFF;

SELECT *
FROM [dbo].[Numbers];