在MS SQL Server中插入确切的行数

时间:2018-04-18 14:20:55

标签: sql sql-server tsql

我想将完全行数(例如100k)插入表中,但使用一个泛型插入命令。< / p>

Oracle我使用:

insert into TABLE 
select dbms_random.value 
  from dual 
connect by level <= 100k;   (or rownum <= 100k)

如何在SQL Server中执行此操作?

修改

我想:

  1. 可以控制多少条记录插入到表格中,

  2. 并在一个查询中执行。

3 个答案:

答案 0 :(得分:5)

numpy.where

答案 1 :(得分:2)

它不像Oracle语法那么简洁,但是recursive CTE呢?例如,这是一个产生100,000个GUID的查询:

declare @count int = 100000;
with cte as
(
    select n = 1, val = newid() -- Base case
    union all
    select n + 1, newid() from cte where n < @count -- Recursive case
)
select val from cte option (maxrecursion 0);

答案 2 :(得分:2)

  

有没有办法不从任何东西中选择?只是生成一些   行?...

WITH E1(x) AS (SELECT 1 FROM (VALUES (1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) x(x)),
     E3(x) AS (SELECT 1 FROM E1 a, E1 b, E1 c)
SELECT TOP (100000) newid() 
FROM E3 a, E3 b;