小弟有个问题这几天一直困扰着我,喜欢高手能帮我解决一下,高分相送。
问题是这样的:我想把数据从Access中导入到sqlserver2008中,但是现在碰到问题就是sqlserver数据库中有很多表都设置了自增量,导致Access中的数据无法正常导入到sqlserver2008中。请问如何解决?解决方法一:删除sqlserver2008中所有表的自增量属性(这是不可能的,因为这样的表太多了,不可能一一删除)
解决方法二:删除access中有自增量的数据列(这也是不可能的,因为有很多表是互相关联的,删除后,数据就会乱,而且这样的表也很多,也不可能一一删除)注:access中的数据也是从sqlserve2008中导出来的。我的目的是想把数据库从服务器上挪到本地机器上,想不到数据无法导入,真是烦死了。希望高手能帮忙解决一下,高分相送。谢谢!

解决方案 »

  1.   

    --强制插入
    set identity_insert tablename on 
      

  2.   

    SQL code--强制插入
    set identity_insert tablename on 是指生成数据库脚本的时候,对于每个有自增量字段的表都加上set identity_insert tablename on吗
      

  3.   

    导入的时候还报了一下这些错误。
    - Validating (Error)
    Messages
    Error 0xc0202049: Data Flow Task 9: Failure inserting into the read-only column "id".
     (SQL Server Import and Export Wizard)
     
    Error 0xc0202045: Data Flow Task 9: Column metadata validation failed.
     (SQL Server Import and Export Wizard)
     
    Error 0xc004706b: Data Flow Task 9: "component "Destination 43 - tbl_order" (571)" failed validation and returned validation status "VS_ISBROKEN".
     (SQL Server Import and Export Wizard)
     
    Error 0xc004700c: Data Flow Task 9: One or more component failed validation.
     (SQL Server Import and Export Wizard)
     
    Error 0xc0024107: Data Flow Task 9: There were errors during task validation.
     (SQL Server Import and Export Wizard)
     
      

  4.   

    使用下面这个时
    set identity_insert tabname on 
    go 列名要指定
    比如:
    insert into tab(column1,column2)
    select name,memo
    from Tab2
      

  5.   

    set identity_insert tablename on 
    go 
    导入数据
    set identity_insert tablename off 
    go 
      

  6.   

    MSSQL导入向导本来就有选择“启用标识列插入”不知道你是要合并还是要清除原表再导,反正都可以