日期:2014-05-17  浏览次数:20496 次

SQL自动创建80行1000列的表,并用存储过程把数据存储进这张表
我现在想先自动创建一个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 + ''
         &n