首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 儲存程序實作大量測試資料批次插入

     編輯:關於SqlServer

在資料庫效能測試與優化階段,常需產生大量測試資料。本文示範如何撰寫儲存程序,一次性批次插入 99,000 筆模擬資料至 userInfo 資料表。

資料表結構

CREATE TABLE [dbo].[userInfo] (
    [userID] [int] IDENTITY(1,1) NOT NULL,
    [roleType] [int] NULL,
    [groupID] [int] NULL,
    [userCode] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [userName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [text1] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [text2] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [text3] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]

批次插入儲存程序

CREATE PROCEDURE add_UserInfo
AS
BEGIN
    DECLARE @userCode VARCHAR(30), @userName VARCHAR(30)
    DECLARE @userCode_base VARCHAR(30), @count INT, @index INT
    DECLARE @rand1 INT, @rand2 INT

    SET @userCode_base = 'qs_'
    SET @userName = 'userName'
    SET @count = 100000
    SET @index = 10000

    WHILE @index < @count
    BEGIN
        SET @userCode = @userCode_base + CONVERT(VARCHAR, @index)
        SET @rand1 = CONVERT(INT, RAND() * 5)  -- 0-5 隨機數
        SET @rand2 = CONVERT(INT, RAND() * 5)

        INSERT INTO userInfo (userCode, roleType, groupID, userName, text1, text2, text3)
        VALUES (@userCode, @rand1, @rand2, @userName, 'aokei kaol jof', '', 'aokei kaol jof')

        SET @index = @index + 1
    END
END
GO

執行 EXEC add_UserInfo 即可快速產生測試資料。實際專案中可依需求調整欄位邏輯與筆數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved