我现在的一个表中需要大量的数据,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
看看我的问题补充,帮帮我吧!