广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    IDENTITY_INSERT 设置为 ON 错误解决办法

    来源:网络收集  点击:  时间:2024-02-22
    【导读】:
    在插入数据的时候,有时候在SQLServer数据库中一个product表中设置了一个主键,并设置起自动增长;有些时候插入数据会出现下面的错误:com.microsoft.sqlserver.jdbc.SQLServerException: 当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时,必须为表 product 中的标识列指定显式值。这个经验就是告诉你怎么解决这个问题工具/原料moreMyEclipse2014与 SQLServer2008R2进行数据库开发jdbcjar包连接,JAVA语言方法/步骤1/3分步阅读

    在一切连接正常的时候,连接数据库通过JAVA代码连接成功SQLServer2008R2的时候进行插入操作的时候通常意外的会遇到:

    com.microsoft.sqlserver.jdbc.SQLServerException: 当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时,必须为表 product 中的标识列指定显式值。这个经验就是告诉你怎么解决这个问题

    2/3

    原因在于pID是主键而且设置了自动增长;所以这个列名的数据是不可能插入进去的,你是不是也犯了大概下面的错误?

    3/3

    那么解决办法很简单就是用正确的代码不插入主键的数据,要注明要插入的其余列的数据,避免了出错这样就可以解决了

    方法/步骤21/3

    正确而且有简单地做法是直接略过主键的那一列直接插入;sql语句应该写成:

    String sql = insert into product(pName,price,Store)values(?,?,?)

    2/3

    运行结果同样可以解决这个错误显示很正常

    3/3

    String sql = insert into product(pName,price,Store)values(?,?,?)

    conn = DBUtil.getConn();//2创建执行对象pstmt = conn.prepareStatement(sql);//给参数赋值/*正确的代码操作*/pstmt.setString(1,pro.getpName());pstmt.setInt(2,pro.getPrice());pstmt.setInt(3,pro.getStore());

    这样一切就OK了

    注意事项

    MyEclipse与SQLServer的连接一定要正常只是插入不可以

    SQLServer IDENTITY_INSERT最好在没有设置主键的时候插入检测一下

    SQLServer插入SQLServer报错IDENTITYINSERTSQL主键插入IDENTITY解决
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_106879.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-07 00:23:40  耗时:0.027
    0.0268s