SQL自动创办80行1000列的表,并用存储过程把数据存储进这张表
SQL自动创建80行1000列的表,并用存储过程把数据存储进这张表
我现在想先自动创建一个80行1000列的表,列名为AI1,AI2......AI1000,我这里有一个二维数组就是80行1000列的,我在想用存储过程执行这个插入过程是不是快点?要求是1S内插入进去。希望大家能帮帮忙。
------解决方案--------------------
13楼正解啊,就多了一个80,你就报错,我稍微改改,撸主运行看看。
我现在想先自动创建一个80行1000列的表,列名为AI1,AI2......AI1000,我这里有一个二维数组就是80行1000列的,我在想用存储过程执行这个插入过程是不是快点?要求是1S内插入进去。希望大家能帮帮忙。
------解决方案--------------------
13楼正解啊,就多了一个80,你就报错,我稍微改改,撸主运行看看。
--建表--------------------------
IF object_id('T1000','U') IS NOT NULL
DROP TABLE T1000
DECLARE @cols NVARCHAR(MAX)
SET @cols = STUFF(( SELECT xh + ''
FROM ( SELECT TOP 1000
', col_' + RIGHT('000'
+ CAST(ROW_NUMBER() OVER ( ORDER BY GETDATE() ) AS VARCHAR),
4) + ' int ' xh
FROM sys.objects a ,
sys.objects b
) t
ORDER BY xh
FOR
XML PATH('')
), 1, 1, '')
DECLARE @create_table_sql NVARCHAR(MAX)
SET @create_table_sql = ' CREATE TABLE T1000 ( ' + REPLACE(@cols, ',', ',' + CHAR(13) + CHAR(10)) + ' ) '
--PRINT @create_table_sql
EXEC (@create_table_sql)
GO
SELECT * FROM T1000
--循环插入80条测试数据-----------------------------------------------------
DECLARE @insert NVARCHAR(max)
SET @insert = ' INSERT INTO T1000 ' + CHAR(13) + CHAR(10) + ' SELECT '
+ STUFF(( SELECT xh + ''
FROM ( SELECT TOP 1000 ',checksum(newid()) ' xh