必威体育Betway必威体育官网
当前位置:首页 > IT技术

IDENTITY_INSERT

时间:2019-09-11 08:41:08来源:IT技术作者:seo实验室小编阅读:87次「手机版」
 

identity_insert

2017-10-22

使用Preparedstatementsql server数据库中插入数据,以userTable表为例:

id : int,主键,自增

username : varchar(20)

password : varchar(20)

现在要插入用户名A和密码123,如果希望id按默认值自增,则:

(如果未将列一一对应,则可能报错“仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表’userTable’中的标识列指定显式值。”)

        PreparedStatement pstmt=null;
        SqlSrvDBConn sqlsrvdb=new SqlSrvDBConn();
        Connection ct=sqlsrvdb.getConn();
        pstmt=ct.preparestatement("insert into userTable(username,password) values(?,?)");
        pstmt.setString(1, "A");
        pstmt.setString(2, "123");
        pstmt.executeUpdate();

若希望自行指定id的值,如90,则:

(如果设置了IDENTITY_INSERT为ON却未指定显式值,则可能报错“当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时,必须为表 ‘userTable’ 中的标识列指定显式值。”)

        PreparedStatement pstmt=null;
        SqlSrvDBConn sqlsrvdb=new SqlSrvDBConn();
        Connection ct=sqlsrvdb.getConn();
        pstmt=ct.prepareStatement("
        set IDENTITY_INSERT userTable ON
        insert into userTable(username,password) values(?,?,?)
        set IDENTITY_INSERT userTable ON
        ");
        pstmt.setInt(1,90);
        pstmt.setString(2, "A");
        pstmt.setString(3, "123");
        pstmt.executeUpdate();

以上为个人目前遇到的在java程序中插入数据(含自增列)遇到的问题和解决办法……个人潦草小笔记

相关阅读

分享到:

栏目导航

推荐阅读

热门阅读