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];