能不能给我发一段把execl导入sql的代码.表名 studentinfoIDStr vachar (18),
NameStr varchar(20),
SexChar char(1),
EnterInt int,
BirthdayDate datetime,
SpecIDStr varchar(20),
TelNoStr varchar(13),
AddressStr varchar(200),
PhotoUrlStr varchar(50),
FatherName varchar(20),
FatherTel varchar(13),
MotherName varchar(20),
MotherTel varchar(13)
sql 代码insert into StudentInfo(MotherTel,MotherName,FatherTel,FatherName,PhotoUrlStr,AddressStr,TelNoStr,SpecIDStr,BirthdayDate,EnterInt,SexChar,NameStr,IDStr)
select *
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0',' Data Source="F:\2009071409071494.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]错误:
服务器: 消息 8152,级别 16,状态 2,行 1
将截断字符串或二进制数据。
语句已终止。

解决方案 »

  1.   

    你可以将excel中的数据删除的还剩余1条,然后导入,看看是否有错误!?
      

  2.   

    我的excel内只有一条数据呀
      

  3.   

    studentinfo 表的字段长度设长一点试试
      

  4.   

    RT! 
    求一个存储过程用于SQLServer导出Excel。只导出某个表的前20000条记录。 
    最好是直接就能用的。
    EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
    参数:S 是SQL服务器名;U是用户;P是密码
    说明:还可以导出文本文件等多种格式
    实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
    EXEC master..xp_cmdshell 'bcp "SELECT TOP 20000 au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'
    SQL SERVER 与ACCESS、EXCEL的数据转换 熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXCEL数据转换,详细说明如下: 一、SQL SERVER 和ACCESS的数据导入导出 常规的数据导入导出: 使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤: 1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation 
    2Services(数据转换服务),然后选择  czdImport Data(导入数据)。 
    3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。 
    4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库服务器,然后单击必要的验证方式。 
    5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。 
    6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。 Transact-SQL语句进行导入导出: 1.在SQL SERVER里查询access数据: 
    -- ====================================================== 
    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
    'Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名 
    ------------------------------------------------------------------------------------------------- 
    2.将access导入SQL server 
    -- ====================================================== 
    在SQL SERVER 里运行: 
    SELECT * 
    INTO newtable 
    FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 
          'Data Source="c:\DB.mdb";User ID=Admin;Password=' )...表名 
    ------------------------------------------------------------------------------------------------- 
    3.将SQL SERVER表里的数据插入到Access表中 
    -- ====================================================== 
    在SQL SERVER 里运行: 
    insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
      'Data Source=" c:\DB.mdb";User ID=Admin;Password=')...表名 
    (列名1,列名2) 
    select 列名1,列名2  from  sql表 
    实例: 
    insert into  OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
      'C:\db.mdb';'admin';'', Test) 
    select id,name from Test 
    INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名) 
    SELECT * 
    FROM sqltablename 
    ------------------------------------------------------------------------------------------------- 二、SQL SERVER 和EXCEL的数据导入导出 
    1、在SQL SERVER里查询Excel数据: 
    -- ====================================================== 
    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
    'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 
    下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。 
    SELECT * 
    FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0', 
      'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions example:
    insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
    'Data Source="c:\temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[test$] 
    SELECT T0.[ItemCode], T0.[ItemName], T1.[WhsName] FROM OITM T0 inner join  OWHS T1 on  T1.[WhsCode] = T0.[DfltWH]
    如果提示列不对应,则先在EXCEL中先对各列进行命名即可。
    ------------------------------------------------------------------------------------------------- 2、将Excel的数据导入SQL server : 
    -- ====================================================== 
    SELECT * into newtable 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
      'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 
    实例: 
    SELECT * into newtable 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
      'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions 
    ------------------------------------------------------------------------------------------------- 3、将SQL SERVER中查询到的数据导成一个Excel文件 
    -- ====================================================== 
    T-SQL代码: (注意:-S,-U,-P都是大写,小写大小得规则)
    EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""' 
    参数:S 是SQL服务器名;U是用户;P是密码 
    说明:还可以导出文本文件等多种格式 
    实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"' 
    EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword' 
    在VB6中应用ADO导出EXCEL文件代码: 
    Dim cn  As New ADODB.Connection 
    cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;" 
    cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'" 
    ------------------------------------------------------------------------------------------------ 4、在SQL SERVER里往Excel插入数据: 
    -- ====================================================== 
    insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
    'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3) T-SQL代码: 
    INSERT INTO  
    OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',  
    'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]  
    (bestand, produkt) VALUES (20, 'Test')  
    ------------------------------------------------------------------------------------------------- 总结:利用以上语句,我们可以方便地将SQL SERVER、ACCESS和EXCEL电子表格软件中的数据进行转换,为我们提供了极大方便!
    二、導入與導出 1.      用BCP工具導入導出 (1)xls文件 EXEC master..xp_cmdshell 'bcp "SELECT class_no,kind_no,cn_name FROM new_ks.dbo.kind ORDER BY 1,2" queryout "e:\test3.xls" -c -q -S"sprogram" -U"develop" -P"12345"' (2)/** 导入文本文件 --入SQLServer select *  into 你的表 from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=c:\temp;','select * from contact.txt') --查詢導出 EXEC master..xp_cmdshell 'bcp "SELECT class_no,kind_no,cn_name FROM new_ks.dbo.kind ORDER BY 1,2" queryout "e:\TX1.txt" -c -q -S"sprogram" -U"develop" -P"12345"' --直接導出 EXEC master..xp_cmdshell 'bcp new_ks.dbo.class out "e:\TX3.txt" -c -S"sprogram" -U"develop" -P"12345"' --直接導入 EXEC master..xp_cmdshell 'bcp "數據庫.dbo.數據表" in c:\DT.txt -c -S服務器名 -U用戶 -P密碼' EXEC master..xp_cmdshell 'bcp hdh.dbo.kind in "e:\TX1.txt" -c -q -S -U -P' EXEC master..xp_cmdshell 'bcp hdh.dbo.kind in "e:\test3.xls" -c -q -S -U -P' --用BULK INSERT導入 BULK INSERT hdh.dbo.kind FROM 'e:\tx1.txt' WITH (     FIELDTERMINATOR = '\t',     ROWTERMINATOR = '\n' ) 前提條件是表如kind要存在,而且字段與test.txt字段數目要一樣多 在查詢分析器中運行,而且是以sa用戶登錄 bulk insert tbyhhk from 'c:\t.txt' with( formatfile='c:\bcp.txt') 
      

  5.   


    sql自带的导入\导出
    1.操作右击数据库-> 所有任务->导入\导出->按向导
      

  6.   

    用SSBIDS,新建一个SSIS项目,然后选择项目->导入和导出向导-》按提示建立源和目标连接-》选择导入的表-》运行,搞定!