大家好,我在sql server 2000里面建立了一个数据库,想直接往里面写入大批量数据,请问如何写?用什么命令?另外,假设我现在有一个别的数据库里面倒出来的文件,里面是一些数据,我想把这个数据导入到sql数据库中,但是表的格式不一样,请问该怎么办?谢谢。

解决方案 »

  1.   

    SELECT IDD=IDENTITY(INT,1,1),*  INTO #T FROM SYSCOLUMNS A,SYSCOLUMNS B ,SYSCOLUMNS C这样应该比较多了,如果不够再多写几个SYSCOLUMNS 还有一种循环写法和CTE写法,0.9秒百万数据
      

  2.   

    另外,假设我现在有一个别的数据库里面倒出来的文件,里面是一些数据,我想把这个数据导入到sql数据库中,但是表的格式不一样,请问该怎么办?谢谢。导出来是什么文件????楼主的描述全不清楚,应该可以利用DTS导入导出功能
      

  3.   

    /** 导入文本文件
    EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'/** 导出文本文件
    EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'

    EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'导出到TXT文本,用逗号分开
    exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'
      

  4.   

    不同服务器数据库之间的数据操作--创建链接服务器 
    exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址' 
    exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码' --查询示例 
    select * from ITSV.数据库名.dbo.表名 --导入示例 
    select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使用时删除链接服务器 
    exec sp_dropserver 'ITSV' , 'droplogins' --连接远程/局域网数据(openrowset/openquery/opendatasource) 
    --1、openrowset --查询示例 
    select * from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) --生成本地表 
    select * into 表 from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) --把本地表导入远程表 
    insert openrowset( 'SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) 
    select *from 本地表 --更新本地表 
    update b 
    set b.列A=a.列A 
    from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) as a inner join 本地表 b 
    on a.column1 = b.column1 --openquery用法需要创建一个连接 --首先创建一个连接创建链接服务器 
    exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址' 
    --查询 
    select * 
    FROM openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名') 
    --把本地表导入远程表 
    insert openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名') 
    select * from 本地表 
    --更新本地表 
    update b 
    set b.列B=a.列B 
    FROM openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名') as a 
    inner join 本地表 b on a.列A=b.列A --3、opendatasource/openrowset 
    SELECT * 
    FROM opendatasource('SQLOLEDB' , 'Data Source=ip/ServerName ; User ID=登陆名 ; Password=密码').test.dbo.roy_ta 
    --把本地表导入远程表 
    insert opendatasource('SQLOLEDB' , 'Data Source=ip/ServerName ; User ID=登陆名 ; Password=密码').数据库.dbo.表名 
    select * from 本地表 我的实例create table my(id int,name varchar(20))create proc proc_my
    as
    insert into my select convert (int,getdate()),getdate()insert opendatasource( 'SQLOLEDB ',  'Data Source=192.168.102.208;User ID=sa;Password=sa ').master.dbo.my
    select  convert (int,getdate()),getdate()exec proc_myselect  * from my order by newid()
    select * from opendatasource( 'SQLOLEDB ',  'Data Source=192.168.102.208;User ID=sa;Password=sa ').master.dbo.my
      

  5.   


    你好,能否给的详细点?
    假设我现在有两个表:
    表1 studentinfo
    id    name    sex   teacherid
    123   张三    男      1
    234   李四    男      2表二 teacherinfo
    id   name  sex
    1    李老师  女
    2    张老师  男如果是上面的两个表,我该如何批量写入数据,比如想写入40000条。
      

  6.   

    你好 关于导入的话是因为有一个oracle数据库,里面到处的文件格式我忘记了,然后想导入到sql里面。
    另外我如果在excel里面有一个文件的话,那么该如何把excel里面的数据导入到sql里面?
      

  7.   

    excel:SELECT *
    FROM openrowset('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\aa.xls','select * from [sheet1$]')
    SELECT   * 
    FROM   OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',   
                'Data Source="c:\aa.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[sheet1$]
      

  8.   

       SQL数据库的导入导出功能已经比较完善,从SQL2000的DTS到SQL2005(8)的SSIS功能都可以可以在图形化界面中宏观操控数据模式,还可以根据数据的导入方式选择表导入和脚本导入,对于需要导入多个表集合的部分列可以采用脚本导入。
       导入的速度如何呢?对于同一实例的数据导入导出都相当快,当然百万级的数据因为检查各种格式相对慢些。
      

  9.   

    我遇到一個問題 就是在使用上面方法 去查詢ORACLE的VIEW的時候,會行數受限制。。只能是171行。其他的資料就不顯示了。。