我是说插入到数据库以前卡号放在哪?
纸上?excel?txt?

解决方案 »

  1.   

    卡号自动加1吗?参考如下:/*Id, FormatId, F1 ,F2
    Id序号我设了自动加一,FormatId我想他也象这样"SL000001",
    当Insert时就加1,FormatId我想他也能自动加一"SL000001","SL000002"...
    能用一条sql什么办法实现.最好不要用中间表。有什么好方法?
    谢谢!
    */create table #test
    (id int identity,
    FormatId as 'SL'+right(10000000+id,6),
    F1 varchar(50))
    go
    insert #test(F1) select '1'
    union all select '2'
    select * from #testdrop table #test/*
    id          FormatId       F1   
    ----------- -------------- -----
    1           SL000001       1
    2           SL000002       2(所影响的行数为 2 行)
    */
      

  2.   

    想要批量的在SQL server里插入,也就是插入到某个表中,俺的意思不是问怎么插入,只是想问一下大家有没有批量插入的方法,也就是提高插入速度的方法
      

  3.   

    这类插入的SQL语句其速度基本上跟机器有关.
      

  4.   

    这个着,ORACLE有批量插入的方式,SQL的话,难道只能用循环,没啥好法儿?
      

  5.   

    我也想知道,不知道你的数据从哪里来?
    导入的话用insert tb1 select ...
      

  6.   

    写到一个txt
    然后用bulk insert
      

  7.   

    不知道楼主的数据源是啥格式通常企业喜欢用Excel,不过一千万的数据用Excel来处理那有多少个文件啊(一个Excel支持六万多行,超过的要修改本地注册表才行)如果是Excel把文件名存放到一个表里,一行一个表名,然后用Job激活某存储过程(该存储过程负责一行一行的数据导入到SQL数据表,用OpenRowSet操作),反正是Job激活的,丢到一边去执行几个小时,回来再看就是。当然这是Excle,不知道这个方法楼主满意不,B/S C/S 使用都方便。
      

  8.   

    先做成文本文件:例如.txt格式
    然后用SQL Server中的bcp实用工具导入数据库
    如果是100万左右的数据是挺快的!
    试试看!
      

  9.   


    insert into table
    select * from otherthable先把数据组织好,一次性插进去挺快的
      

  10.   

    批量插入:
    declare @i int
    declare @j int
    declare @m int
    declare @strsql(8000)
    set @i=1while(@j<=10000) --一万次 每次100条
    set @m=1
    begin
    set @strsql="insert into table(code) select 'sn'" + right("00000000" + convert(varchar(8),@i),8)
    while(@m<=100)
    begin
    set @i=@i+1
    set @strsql= @strsql +" union select 'sn'" + right("00000000" + convert(varchar(8),@i),8)
    set @m=@m+1
    end
    exec(@strsql) 
    set @j=@j+1
    end
      

  11.   

    批量插入:
    declare @i int
    declare @j int
    declare @m int
    declare @strsql(8000)
    set @i=1while(@j<=10000) --一万次 每次100条
    set @m=1
    begin
    set @strsql="insert into table(code) select 'sn'" + right("00000000" + convert(varchar(8),@i),8)
    while(@m<=100)
    begin
    set @i=@i+1
    set @strsql= @strsql +" union select 'sn'" + right("00000000" + convert(varchar(8),@i),8)
    set @m=@m+1
    end
    exec(@strsql) 
    set @j=@j+1
    end
    ==========================================
    学习中
      

  12.   

    sql server中的批量插入
    当然用bulk insert喽,速度很快
      

  13.   

    北京招聘
    Asp.net(C#)开发工程师
    1、计算机专业本科以上学历,有能力者不限制;
    2、精通ASP.NET、C#、MSSQLServer等技术及相关开发工具;
    3、熟练掌握UML建模,至少熟悉一种建模软件;
    4、熟悉数据库操作,有面向对象基础。熟悉三层开发构架;
    5、应聘者请附上曾开发的项目实例或说明;
    6、有较强的合作、沟通能力,具有团队精神与团队合作经验根据能力定薪金,具体待遇面议,保证不低于同行业水平.
    Email:[email protected]
    工作地点:
    北京望京科技园利泽中园或北京电子城科技园区 [靠近望京和酒仙桥地区]
      

  14.   

    楼主不是玩笑只是如果有一个项目需要用大量数据做测试,而直接插入或TSQL都太慢。如何以最快的方式插入百万或更多数据???
      

  15.   

    查了很多种方法,不过今天用自己机器测试了一下declare @num int
    declare @time int
    declare @str varchar(8000)set @num=1
    set @time=1
    set @str = 'insert into jobs values(''testDate'',11,22)'
    while(@num <10000)
     begin
     
     while(@time<101)
     begin
      set @str = @str+';insert into jobs values(''testDate'',11,22)'
      set @time=@time+1
     end
     print @str
     set @num=@num+1
     exec(@str)
     end用时三分四十六秒我机器配置:CORE2 6300(超四百外频),1G内存
      

  16.   

    用bulk insert或bcp使用工具.
    并且,如果复制表数量相对于插入的目的表,数据量要大得多,可以先删除索引,就是减少插入数据时的排序所花的时间...
      

  17.   

    CREATE TABLE adminInfo
                (
                    -- adminId -- this column value is auto-generated,
                    adminLoginName nvarchar(50),
                    adminPassword nvarchar(50),
                    adminLevel int
                )GOCREATE PROCEDURE [dbo].[P_InsertAdminInfo]
        @dataNumber  INT -- 需要插入的数据量
    AS
        INSERT INTO adminInfo
             SELECT TOP(@dataNumber)
                 'manager' + RTRIM(ISNULL((SELECT MAX(REPLACE(adminLoginName,'manager','')*1) FROM adminInfo),0)+ROW_NUMBER() OVER(ORDER BY o.object_id)),
                 '1111111',
                 ABS(CHECKSUM(NEWID())) % 2 + 1
             FROM sys.all_objects AS o,sys.all_columns AS c GOEXEC [dbo].[P_InsertAdminInfo] 300000SELECT * FROM adminInfoGODROP TABLE adminInfo
    DROP PROCEDURE [dbo].[P_InsertAdminInfo]