我试着在我的表中插入一些虚拟数据。WHILE,但它的运行速度确实很慢。 ! w. g7 s, x6 D1 l6 o我在想,也许我写的代码不正确,请看看并确认吗? 3 I8 f( P0 t; }( h, d9 x4 {2 o. E-- Insert dummy dataDECLARE @i int, @Content int;SET @i = 5001;WHILE @i > 5000 AND @i 如果只插入所有499行行一次,您将获得比在循环中执行4999个单独的插入句更好的性能。所以,如果你的手表#T包含4999行,则只需调用以下命令: ( |- ] i6 A5 e; c* Y/ t) KINSERT INTO DBO.CmsImagesContents(ContentId,Title,AltTag,Caption) SELECT (ABS(CAST(CAST(NEWID() AS VARBINARY) AS INT)) 5000AS ContentID, Test Title' AS Title,'Test AltTag' AS AltTag,'Test Caption' AS CaptionFROM #T1如果您首先需要创建一个包含4999行的表,请创建以下表格SQL为您工作:$ d: |# G. J+ U
CREATE TABLE #T1( N INT NOT NULL PRIMARY key);WITH L0 AS (SELECT 1 AS N UNION ALL SELECT 1), L1 AS (SELECT A.N FROM L0 AS A CROSS JOIN L0 AS B), L2 AS (SELECT A.N FROM L1 AS A CROSS JOIN L1 AS B), L3 AS (SELECT A.N FROM L2 AS A CROSS JOIN L2 AS B), L4 AS (SELECT A.N FROM L3 AS A CROSS JOIN L3 AS B), Nums AS (SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS n FROM L4)INSERT INTO #T1( N )SELECT NFROM NumsWHERE n 5000;