应该直接用BCP   -E就可以解决的
如果不行:
一、把数据库那个字段改成整型(非自增)   
二、导入前把ID去掉

解决方案 »

  1.   

    我是程序员,数据库表不是我建的。和他们商量他们不让删掉ID,他的ID要唯一改非自增的话保证唯一很麻烦。
      

  2.   

    bcp "[Test].[dbo].[w_PlayerConnGameInfo_2008_2]" in "D:\PlayInfo.txt"   -f "D:\PlayInfo.fmt" -S "192.168.1.129" -U "Admin" -P "Admin" 这个是导入的命令。-E参数是怎么解决的能具体说下吗?
      

  3.   

    以下摘自MSDN:
    -E
    指定导入的数据文件中的标识值用于标识列。如果不指定 -E,则将忽略被导入的数据文件中此列的标识值,而且 SQL Server 2005 将根据创建表期间指定的种子值和增量值自动分配唯一值。 假如数据文件不包含表或视图中的标识列的值,则可在格式文件指定,在导入数据时忽略表或视图中的标识列;SQL Server 2005 将自动为该列分配唯一值。有关详细信息,请参阅 DBCC CHECKIDENT (Transact-SQL)。-E 选项有一个特殊的权限要求。有关详细信息,请参阅本主题后面的“备注”。
      

  4.   

    bcp   "[Test].[dbo].[w_PlayerConnGameInfo_2008_2]"   in   "D:\PlayInfo.txt"       -f   "D:\PlayInfo.fmt"   -S   "192.168.1.129"   -U   "Admin"   -P   "Admin" -E
    结果报:在BCP文件中遇到意外的EOF  
    如果我把要入库的日志文件加上ID号:
    1 1 0.0.0.0 0 0.0.0.0 2008-1-29 19:16:43.132 2008-1-29 19:18:15.123 192.168.1.6 00-E0-A0-05-B8-FA 1 2008-2-3 17:12:26.312
    在导入时报错:
    对以造型说明无效的字符值。
    不知道你是怎么用的
      

  5.   

    我把fmt文件改这样
    9.0 
    10 
    1               SQLCHAR               0               0               ""               0           ID                                                           "" 
    2               SQLCHAR               0               12             "\t"           2           GameID                                                   "" 
    3               SQLCHAR               0               100           "\t"           3           GameEdition                                         Chinese_PRC_CI_AS 
    4               SQLCHAR               0               12             "\t"           4           PlayerArea                                           "" 
    5               SQLCHAR               0               100           "\t"           5           SDKEdition                                           Chinese_PRC_CI_AS 
    6               SQLCHAR               0               100           "\t"           6           ConnStartDate                                     Chinese_PRC_CI_AS 
    7               SQLCHAR               0               100           "\t"           7           ConnEndDate                                         Chinese_PRC_CI_AS 
    8               SQLCHAR               0               100           "\t"           8           Ip                                                           Chinese_PRC_CI_AS 
    9               SQLCHAR               0               200           "\t"           9           MACAddress                                           Chinese_PRC_CI_AS 
    10             SQLCHAR               0               20             "\t"           10         Chn                                                         Chinese_PRC_CI_AS 
    11             SQLCHAR               0               100           "\r\n"       11         AddDate         
    在bcp       "[Test].[dbo].[w_PlayerConnGameInfo_2008_2]"       in       "D:\PlayInfo.txt"               -f       "D:\PlayInfo.fmt"       -S       "192.168.1.129"       -U       "Admin"       -P       "Admin"   -E 报错:无效的描述符索引
      

  6.   

    D:\PlayInfo.txt文件内容就是:
    1 0.0.0.0 0 0.0.0.0 2008-1-29   19:16:43.132 2008-1-29   19:18:15.123 192.168.1.6 00-E0-A0-05-B8-FA 1 2008-2-3   17:12:26.312 
      

  7.   

    那个日志文件只有10列,改ID的话有2个缺点:
    1 日志文件需要增加到11列
    2 ID的唯一性不好保证
      

  8.   

    难道CSDN真没有高手?100分都没有人要