当前位置: 首页 > 面试题库 >

使用WHILE创建虚拟数据

蒯宏达
2023-03-14
问题内容

我尝试使用插入一些虚拟数据到我的表中WHILE,但是它的运行速度确实非常慢。

我在想,也许我编写的代码不正确,请您看看并确认一下吗?

-- Insert dummy data

DECLARE
    @i          int,
    @Content    int;
SET @i = 5001;

WHILE @i > 5000 AND @i < 10000
BEGIN
    SET @Content = ROUND(((10000-5000)*RAND()+5000),0)
    INSERT INTO dbo.CmsImagesContents
    (ContentId, Title, AltTag, Caption)
    VALUES
    (@Content,'Test Title', 'Test AltTag', 'Test Caption');
    SET @i = @i + 1;
END

问题答案:

如果只对所有4999行进行一次插入,则与在循环中执行4999个单独的插入语句相比,您将获得更好的性能。因此,如果您的表#T包含4999行,则只需调用以下命令:

INSERT INTO DBO.CmsImagesContents(ContentId, Title, AltTag, Caption)    
SELECT (ABS(CAST(CAST(NEWID() AS VARBINARY) AS INT)) % 5000) + 5000 AS ContentID, 
        'Test Title' AS Title, 'Test AltTag' AS AltTag, 'Test Caption'  AS Caption
FROM #T1

如果您首先需要创建一个包含4999行的表,那么以下SQL将为您工作:

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 N
FROM Nums
WHERE n < 10000 AND n>5000;


 类似资料:
  • 创建一台 Linux 系统的虚拟机,Linux 系统的类型选择的是 CentOS 7.x 。 创建项目 每个项目都在各自的文件夹里,你可以为每个项目单独去创建虚拟机。打开命令行工具,先为项目创建一个文件夹: cd ~/desktop mkdir awesome-project cd awesome-project 上面执行的命令就是在命令行下面,先进入到当前登录用户的桌面(desktop)上,在

  • 本文向大家介绍创建Lua虚拟机,包括了创建Lua虚拟机的使用技巧和注意事项,需要的朋友参考一下 示例 5.1 5.1            

  • 问题内容: 如果我选择SELECT AS b且b不是表中的列,查询会创建“虚拟”列吗? 实际上,我需要将一些虚拟列合并到查询中,并将一些信息处理到查询中,以便以后可以在每个项目中使用它。 问题答案: 就像是: 这使您可以进行操作并将其显示为列。 编辑: 您还可以使用联接并将操作显示为列:

  • 问题内容: 我正在使用 python 2.7 + virtualenv版本1.10.1 来运行myproject项目。由于其他一些项目要求,我不得不使用其他版本的python( Python 3.5 )和 Django 1.9 。为此,我在用户目录中安装了python。另外,我已经将virtualenv( version-15.1.0 )下载并安装到我的用户目录中。但是每当我尝试创建虚拟环境时,都

  • 我使用python 2.7虚拟环境版本1.10.1运行myproject项目。由于一些其他项目的要求,我必须使用Python的其他版本(Python 3.5)和Django 1.9。为此,我在我的用户目录中安装了python。此外,我已经下载并安装了虚拟环境(版本-15.1.0)到我的用户目录。但是每当我试图创建虚拟环境时,我都会遇到以下错误 谁能告诉我我做错了什么

  • 打开命令行,执行: cd ~/desktop mkdir wenjiangs-lemp cd wenjiangs-lemp mkdir app vagrant init centos/7 用编辑器打开 wenjiangs-lemp 目录,编辑 Vagrant 配置文件:Vagrantfile macOS: Vagrant.configure("2") do |config| config.v