本帖最后由 realkinglion 于 2014-06-14 21:50:04 编辑

解决方案 »

  1.   

    执行插入语句前,先做判断.if exists(select 1 from [目标表] where [主键字段]=[主键值])
    begin
     -- 若主键值已存在则返回错误,写法可依具体情况而定.
     print '主键值: '+[主键值]+'已存在于目标表,无法插入.'
    end
    else
    begin
     -- 若主键值不存在则执行插入语句.
     insert into [目标表]([字段列表]) values([值列表])
    end 
      

  2.   

    如何获取错误信息再进行处理呢?
    --> 程序中用try..catch ..
      

  3.   

    版主,如何获取错误信息里那个主键的值呢?不通过exists等方法从原数据库中检索对比
      

  4.   

    以C#为例,try..catch..的catch段中可获取Exception.Message的值即是详细的错误信息,
    如下格式: 
    Violation of PRIMARY KEY constraint '[主键约束名]'. Cannot insert duplicate key in object '[表名]'. The duplicate key value is ([无法插入的主键值]).
    The statement has been terminated.
    可以通过字符串的截取来获取该主键值.
      

  5.   

    以C#为例,try..catch..的catch段中可获取Exception.Message的值即是详细的错误信息,
    如下格式: 
    Violation of PRIMARY KEY constraint '[主键约束名]'. Cannot insert duplicate key in object '[表名]'. The duplicate key value is ([无法插入的主键值]).
    The statement has been terminated.
    可以通过字符串的截取来获取该主键值.
    谢谢版主!帮我三次了,还想求教一个问题,如何快速把select的内容放到List<T>中呢?
      

  6.   

    List<T>?
    datatable不一样的用么?