相对于传统的循环和游标方式生成数据,"GO n"方式更加简洁。 虽然效率低下,但是也不失为一种方法(更高效的可以用row_number+sys.all_columns方式)。 view sourceprint? -- 创建测试表 use tempdb go CREATE TABLE [dbo].[Tally]( [N] [int] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_Tally] PRIMARY KEY CLUSTERED ( [N] ASC)) ON [PRIMARY] -- 设置环境 SET NOCOUNT ON GO SET IDENTITY_INSERT dbo.Tally ON; GO -- 插入首行数据 INSERT dbo.Tally(N) VALUES(IDENT_CURRENT('dbo.Tally')); GO -- 重复10000次插入10000行记录,本本上大约花费7s INSERT dbo.Tally(N) VALUES(IDENT_CURRENT('dbo.Tally')+1); GO 10000 -- 恢复环境 SET IDENTITY_INSERT dbo.Tally OFF; GO SET NOCOUNT OFF GO -- 验证结果 SELECT count(1) as TotalNums FROM dbo.Tally; GO /* TotalNums ----------- 10001 */