微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

批量修改sqlserver 字段默认值

批量修改sqlserver  字段wid 认值

 

package com.pm360.pip.test;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.sqlException;
import java.sql.Statement;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class Testsqlserver {
 public static void testMS ()throws NamingException {
  Connection conn=null;
  ResultSet rs=null;
  ResultSet rs1=null;
  Statement statement=null;
  Statement statement1=null;
  Statement statement2=null;
  Statement statement3=null;
  try {
   Context initCtx = new InitialContext();
   DataSource ds= (DataSource)  initCtx.lookup("java:/comp/env/jdbc/pip");
   conn=ds.getConnection();
   //得到数据库所有包含WID字段的表
   String sql="SELECT dbo.sysobjects.name AS [table],dbo.syscolumns.name AS columns FROM dbo.sysobjects INNER JOIN dbo.syscolumns ON dbo.sysobjects.id = dbo.syscolumns.id  and syscolumns.name='WID' WHERE (dbo.sysobjects.xtype = 'u')";
   /*List<Map<String,Object>> listmap=DBUtil.queryListMapBysql(conn,sql);
   for (Map<String,Object> map : listmap) {
    String table=(String)map.get("table");
    String columns=(String)map.get("columns");
    System.out.println(table+"----"+columns);
    
   }*/
    statement=conn.createStatement();
    statement1=conn.createStatement();
    statement2=conn.createStatement();
    statement3=conn.createStatement();
    rs= statement.executeQuery(sql);
   while(rs.next())
   {
    String Tablename = rs.getString(1);
    System.out.println(Tablename);
    System.out.println(rs.getFetchSize());
    String temp="select   t3.name   as   表名,t1.name   as   字段名,t2.text   as   认值  ,t4.name   from   syscolumns   t1,syscomments   t2,sysobjects   t3  ,sysobjects   t4   where     t1.cdefault=t2.id   and   t3.xtype='u'   and   t3.id=t1.id   and   t4.xtype='d'   and   t4.id=t2.id";
    rs1=statement1.executeQuery(temp);
    while(rs1.next())
    {
     if(Tablename.equalsIgnoreCase(rs1.getString(1)))
     {
      //sqlSERVER修改认值 必须删除字段的约束
      String dropdefaultsql="alter   table "+Tablename+"  drop constraint "+rs1.getString(4)+"";
      statement3.execute(dropdefaultsql);
     }
    }
    //添加认值
    String asql=" alter   table  "+Tablename+"   add   default newid() for  wid ";
    statement2.execute(asql);
   }
  } catch (sqlException e) {
   e.printstacktrace();
    
  }
  finally
  {
   try {
    rs.close();
    rs1.close();
    statement.close();
    conn.close();
   } catch (sqlException e) {
    e.printstacktrace();
   }
  }
 }

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐