【问题标题】:Insert n number of rows插入 n 行
【发布时间】:2017-09-30 03:36:14
【问题描述】:

我想在我的表中插入虚拟数据,比如说使用循环或其他方式的 10000 条记录。表定义如下:

ID (PK & AI) | ArticelNumber (varchar unique) | CreateDate (Datetime)

【问题讨论】:

  • 写一个循环...
  • 什么标准?或者你问如何插入10000个默认值?
  • 我的sql不太好,我想插入x行
  • 创建一个客户端函数,用随机生成的值填充该数据库。把它放在一个从 0 到 10000 的循环中

标签: sql-server tsql


【解决方案1】:

我认为以下将符合您的标准,如果有任何问题,请在 cmets 中提问:

-- create table
create table #tmp 
  (ID int primary key, 
  ArticeNumber nvarchar(50), 
  CreateDate datetime)
go

-- loop with insert
declare @incr int = 1
while (@incr < 10001)
begin
    -- use "getdate() - @incr" as below if you want to have diffrent dates or just getdate() if not  
    insert into #tmp
    select @incr, newid(), getdate() - @incr

    -- second option to insert below
    -- insert into #tmp
    -- select @incr, 'ArticleNo: ' + cast(@incr as nvarchar), getdate() - @incr

    -- increment int
    set @incr = @incr + 1
end
go

-- select your date
select * from #tmp

-- below is just to prove ArticleNumbert is unique 
select distinct ArticeNumber from #tmp

-- drop table if necessary
drop table #tmp

【讨论】:

  • 出现错误:只有在使用列列表并且 IDENTITY_INSERT 为 ON 时,才能为表 'dbo.T_Artikel' 中的标识列指定显式值。
【解决方案2】:

或者只使用GO 10000,例如

INSERT INTO <yourtable>(DatetimeCol, varcharCol, IntegerCol,...)
VALUES(sysdatetime(),'<yourtext>',<yourInt>,...);

GO 10000

【讨论】:

    【解决方案3】:

    您可以使用http://generatedata.com/网站

    它的工作原理很容易理解,你可以放你想要的标准

    【讨论】:

    • 但是您要插入什么?随机数据?顺序数据? ID 是标识列吗?它是什么数据类型?您是否在每一行中使用不同的数据,相同的数据,不同的数据但定期重复(即从一组中随机)?它需要与其他任何东西相关吗?我可以继续,正如我在下面所说的,最简单的方法是编写一个 Insert 语句并重复 10000 次(假设 ID 是标识或具有默认值)
    • @JurgenHakanHifzi 随便什么 - 我想制作一个循环的随机数据,但不知道如何为每一列“ArticleNumber”生成不同的值,因为这个 col 是唯一的。 id col 只是整数。
    【解决方案4】:

    好的,如果您的表具有 id identity,并且您只需要插入唯一的 ArticleNumber 和当前日期,您就可以使用任何包含至少 10000 行的表中的前 10000 个,或者这样:

    insert into yourTble(ArticleNumber, CreateDate)
    select top 10000 newid(), getdate()
    from sys.all_columns cross join sys.all_columns c1;
    

    【讨论】:

      【解决方案5】:

      您可以使用该插入查询插入默认值;

      INSERT INTO table DEFAULT VALUES
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-16
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        相关资源
        最近更新 更多