如何向一个sql sever 数据库表中插入大量数据?

我现在的一个表中需要大量的数据,15天每3秒一个数据,自己手动插数据,太慢了?可不可以写个sql 语句,可以自动生成15天的数据,如从2012-06-04 00:00:00 000~2012-06-18 00:00:00 000之间,每3秒一个数据,时间会自动增加。
SELECT TOP 1000 [FZaddr]
,[NODEaddr]
,[data]
,[Flag_comm]
,[Flag_run]
,[XB0]
,[XB1]
,[XB2]
,[KB]
,[Uab]
,[Ubc]
,[Uca]
,[U0]
,[Ia]
,[Ib]
,[Ic]
,[I0]
,[P]
,[Q]
,[COS]
,[f]
,[Rx]
,[Temp0]
,[expand1]
,[expand2]
,[expand3]
,[expand4]
,[expand5]
,[expand6]
,[expand7]
,[expand8]
,[expand9]
,[expand10]
,[expand11]
,[expand12]
,[expand13]
,[expand14]
,[expand15]
,[expand16]
,[expand17]
,[expand18]
,[expand19]
,[expand20]
FROM [elec_data_kj516].[dbo].[历史电参数表]这就是整个表,你就按照这个表给我详细写一下吧,一直做的测试,改做开发了,不会,也比较急。除了data是3秒钟一变,其他数据可以都完全一样

    一次性插入大量数据,只能使用循环,

    如:游标,while 循环语句

    下面介绍While 循环插入数据,

    SQL 代码如下:

    IF OBJECT_ID('dbo.Nums') IS NOT NULL

      DROP TABLE dbo.Nums;

    GO

    CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);

    DECLARE @max AS INT, @rc AS INT;

    SET @max = 5000000;

    SET @rc = 1;

    INSERT INTO Nums VALUES(1);

    WHILE @rc * 2 <= @max

    BEGIN

      INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums;

      SET @rc = @rc * 2;

    END

    INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;

    --以上函数取自Inside SQL Server 2005: T-SQL Query一书。

    INSERT dbo.Sample SELECT n, RAND(CAST(NEWID() AS BINARY(16))) FROM Nums

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-19
要不你用游标吧,或者用循环
CREATE proc [dbo].[存储过程名字]
as
Declare @参数 int
declare cursor1 cursor for
select m_n数据列 from 数据表
open cursor1
fetch next from cursor1 into @参数
while @@fetch_status =0
begin
插入语句
fetch next from cursor1 into @参数
end
close cursor1
Deallocate cursor1
这个是用游标写的存储过程,看一下对你有帮助吗追问

看看我的问题补充,帮帮我吧!

第2个回答  推荐于2017-12-16
declare @datese dateTime

set @datese='2012-06-04 00:00:000'

while @datese<'2012-06-18 23:59:59:000'
begin
set @datese=DATEADD(S,3,@datese)
insert into 你的表名 values([NODEaddr]的值,@datese,[Flag_comm],……,[expand20]的值
)

end
就这样,直接把表名一改执行本回答被网友采纳
第3个回答  2012-06-19
用任务调度命令crontab试下吧,详细写法你可以百度下
相似回答