精华内容
下载资源
问答
  • --用 sp_rename 重命名表 EXEC sp_rename 原表, 新表

    --用   sp_rename   重命名表  
    EXEC   sp_rename   '原表',   '新表'

    展开全文
  • 通过mybatis拦截器将查询语句、更新语句、删除语句、插入语句中指定表明替换为另一个表名
  • sql server 修改表名

    千次阅读 2016-06-04 20:28:53
    1、sql server 修改表名:exec sp_rename 'fruits', 'fruit';2、mysql修改表名:alter table fruits rename to fruit;

    1、sql server 修改表名:

    exec sp_rename 'fruits', 'fruit';

    2、mysql修改表名:

    alter table fruits
    rename to fruit;
    展开全文
  • MyBatis拦截器分页与动态修改SQL及其参数值 提取SQL Like 字段
  • mybatis-plus拦截器修改sql语句

    千次阅读 2021-03-22 23:10:13
    以及需要在sql语句中进行特殊的标识来表明需要对语句进行修改的地方用了@where来标识,在修改的过程中把@去掉 /** * sql拦截器,通过mybatis提供的Interceptor接口实现 */ @Log4j2 @Component //拦截...

    **

    mybatis-plus拦截器修改sql语句

    **
    mybatis的拦截器网上有很多的样例不再过多赘述
    直接放代码,参照了其他人的博客结合自身业务修改而成
    使用了自定义注解@SqlPermission
    以及需要在sql语句中进行特殊的标识来表明需要对语句进行修改的地方用了@where来标识,在修改的过程中把@去掉

    /**
     * sql拦截器,通过mybatis提供的Interceptor接口实现
     */
    @Log4j2
    @Component
    //拦截StatementHandler类中参数类型为Statement的prepare方法(prepare=在预编译SQL前加入修改的逻辑)
    @Intercepts({@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})})
    public class PermissionInterceptr2 implements Interceptor {
    @Resource
        AdminUserService adminUserService;
    
        /**
         * 拦截sql
         *
         * @param invocation
         */
        @Override
        public Object intercept(Invocation invocation) throws Throwable {
            StatementHandler statementHandler = (StatementHandler) invocation.getTarget();
    
            // 通过MetaObject优雅访问对象的属性,这里是访问statementHandler的属性;:MetaObject是Mybatis提供的一个用于方便、
            // 优雅访问对象属性的对象,通过它可以简化代码、不需要try/catch各种reflect异常,同时它支持对JavaBean、Collection、Map三种类型对象的操作。
            //实际执行的sql是经过层层封装,无法利用简单的一层反射获取到需要使用提供的快捷方法或者对获取到关键数据进行拼装
            MetaObject metaObject = MetaObject.forObject(statementHandler, SystemMetaObject.DEFAULT_OBJECT_FACTORY, SystemMetaObject.DEFAULT_OBJECT_WRAPPER_FACTORY,
                    new DefaultReflectorFactory());
    
            // 先拦截到RoutingStatementHandler,里面有个StatementHandler类型的delegate变量,其实现类是BaseStatementHandler,然后就到BaseStatementHandler的成员变量mappedStatement
            MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement");
    
            // id为执行的mapper方法的全路径名,如com.cq.UserMapper.insertUser, 便于后续使用反射
            String id = mappedStatement.getId();
            // sql语句类型 select、delete、insert、update
            String sqlCommandType = mappedStatement.getSqlCommandType().toString();
            // 数据库连接信息
    
    
            BoundSql boundSql = statementHandler.getBoundSql();
            // 获取到原始sql语句
            String sql = boundSql.getSql();
            log.info("SQL:{}", sql);
    
    
            // 增强sql
            // 通过反射,拦截方法上带有自定义@SqlPermission,并增强sql
            //离谱的是之前的反射无法生效,不知道为什么这个可以生效有待研究
            String mSql = sqlAnnotationEnhance(id, sqlCommandType, sql);
            // 直接增强sql
            //通过反射修改sql语句
            Field field = boundSql.getClass().getDeclaredField("sql");
            field.setAccessible(true);
            field.set(boundSql, mSql);
            log.info("增强后的SQL:{}", mSql); // 打印:增强后的SQL:select * from scenario_storage limit 2
            return invocation.proceed();
        }
    
        /**
         * 通过反射,拦截方法上带有自定义@SqlPermission,并增强sql
         *
         * @param id             方法全路径
         * @param sqlCommandType sql类型
         * @param sql            所执行的sql语句
         */
        private String sqlAnnotationEnhance(String id, String sqlCommandType, String sql) throws ClassNotFoundException {
            // 通过类全路径获取Class对象
            Class<?> classType = Class.forName(id.substring(0, id.lastIndexOf(".")));
            // 获取当前所拦截的方法名称
            String mName = id.substring(id.lastIndexOf(".") + 1);
            String powerSql = sql;
            // 遍历类中所有方法名称,并if匹配上当前所拦截的方法
            for (Method method : classType.getDeclaredMethods()) {
                if (mName.equals(method.getName())) {
                    // 判断方法上是否带有自定义@InterceptAnnotation注解
                    SqlPermission interceptorAnnotation = method.getAnnotation(SqlPermission.class);
                    if (interceptorAnnotation != null) {
                        //进行增强sql
                        int start = 0;
                        if (interceptorAnnotation != null) {
                            System.out.println("该方法需要进行数据过滤");
                            start = sql.lastIndexOf('@');
    
                            if (start != 0 || start != -1) {
                                String prefix = sql.substring(0, start);
                                String suffix = sql.substring(start + 6, sql.length());
                                String where = "where";
                                HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
                                String userStr = request.getHeader(AuthConstant.TokenModelName);
                                UserDto userDto = JSONUtil.toBean(userStr, UserDto.class);
                                AdminUserEntity userDto1 = adminUserService.getById(userDto.getId());
                                //sql组装
                                prefix += " left join base_organization bo on t1.org_id = bo.id ";
                                List<String> arrays = Arrays.asList(userDto1.getPermission().split(","));
                                where += "  bo.id in  " + "(";
                                for (String item : arrays) {
                                    String newItem = "'" + item + "',";
                                    where += newItem;
                                }
                                where = where.substring(0, where.length() - 1);
                                where += ") and ";
                                //   suffix+=;
                                powerSql = prefix + where + suffix;
                            }
                        }
                    }
                }
            }
            return sql.equals(powerSql) ? sql : powerSql;
        }
    
    展开全文
  • Sql Server 修改表所属用户 exec sp_changeobjectowner 'tablename','dbo' tablename--所要修改表明 dbo--是表所属的用户,默认是dbo 如果想要把表user修改到用户officedba下,就可以用 exec sp_...

    Sql Server 修改表所属用户

    exec sp_changeobjectowner ' tablename',' dbo'

    tablename--所要修改的表明

    dbo--是表所属的用户,默认是dbo

    如果想要把表user修改到用户officedba下,就可以用

    exec sp_changeobjectowner 'user','officedba'

    officedba用户要存在


    展开全文
  • 昨天由于要对数据库中大片没有插入的数据进行修复,因此想到了遍历每条数据和修改遍历的数据。 由于并没有有序的字段,不能简单的用while循环,因此,需要用到游标。 下面对sql 语句进行分析。 begin declare @pid ...
  • Sql语句修改表名

    2011-11-14 09:37:23
    1. MYSQL rename table table1 to table2; 2. SQL SERVER EXEC sp_rename 'table1', 'table2'; 3. Oracle alter table table1 rename to table2 4. db2 rename table table1 to table2;
  • 在mysql中修改表名的sql语句

    万次阅读 2018-12-06 15:31:59
    在使用mysql时,经常遇到表名不符合规范或标准,但是表里已经有... 能否简单使用一个SQL语句就搞定呢?当然可以,mysql5.0下我们使用这样的SQL语句就可以了。 ALTER TABLE table_name RENAME TO new_table_name ...
  • MySQL使用SQL语句修改表名

    万次阅读 2018-01-11 20:58:59
    MySQL中可以使用rename table这个SQL语句来修改表名。 rename table这个SQL语句来修改表名的基本语法是: RENAME TABLE <旧表名> TO <新表名>; 我们来把test表修改为test1表。 1、首先查看一下当前...
  • Mybatis拦截器修改sql语句

    万次阅读 2018-10-05 13:24:58
    当我们需要改变sql的时候,显然我们要在预编译SQL(prepare方法前加入修改的逻辑)。 当我们需要修改参数的时候我们可以在调用parameterize方法前修改逻辑。或者使用ParameterHandler来改造设置参数。 我们需要...
  • go--先检查表是否存在,再使用内置存储过程修改表名 if exists (select 1 from sysobjects where id = object_id('Table Name') and type = 'U') exec sp_rename 'Table Name','New Table N
  • SQL服务器修改端口

    千次阅读 2005-06-16 15:05:00
    SQL Server端口,我们可以通过"服务器端网络试用工具"和"客户端实用工具"来设定,设定方法是:分别使用"服务器端网络试用工具"和"客户端实用工具"设置"常规选项"->"启用的协议"->"Tcp/Ip"->"属性"中的默认端口,假设为...
  • SQLServer修改数据列

    千次阅读 2018-08-23 20:13:30
    修改数据列 在开发和生产过程中,列名的拼写错误或者列名的更改是需要操作数据表的,大多数情况下都是不需要修改的. 以下几种情况下我们并不能直接修改数据列: 1、用于索引的列。  2、用于 CHECK、FOREIGN ...
  • Oracle sql语句修改表名

    万次阅读 2018-07-17 14:24:52
    方法1:在原表上修改表名 ALTER TABLE [原表名称] RENAME TO [新表名称]; 方法2:建新表xinTable,将原表oldTable的数据导进去; create table xintable as select * from oldTable;//在原表的基础上建立新表 ...
  • 图中自上而下,分别为service的实现层、mapper层、mapper.xml 文件; 【1】serice 层中是需要...【3】mapper.xml 文件中需要添加statementType="STATEMENT",表明为非编译;同时获取的参数前应使用${} 而不能使用 #{} 。
  • sqlServer 2008修改字段类型和重命名字段名称的sql语句 //修改字段的类型 ALTER TABLE fdi_news ALTER COLUMN c_author nvarchar(50) //增加字段 ALTER TABLE fdi_news ADD c_author nvarchar(50) ...
  • 第2部分 数据库SQL语言如何修改SQL脚本以完成需求? SQL脚本的修改和C语言代码的修改流程是一样的,都要遵循以下步骤: 第一步,阅读需求,弄清楚自己要完成什么功能。 第二步,对照需求阅读原代码,找到本次要...
  • MYSQL批量修改表前缀与表名sql语句

    千次阅读 2019-08-31 10:02:29
    修改表名 ALTER TABLE 原表名 RENAME TO 新表名;...一句SQL语句只能修改一张表 show tables; 1. SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO db_', substring(table_name, 4)...
  • SqlServer中,教你如何修改列名

    千次阅读 2019-04-21 13:26:28
    SqlServer中,教你如何修改列名
  • 四.Sql server修改语句

    千次阅读 2012-10-30 15:04:31
    这一节讲解更新数据库中表的信息 以tb_Students_info表...SQL 语句:update tb_Students_info set StudentsSex='woman'where StudentsName='Joe'; 查询更改后的数据表:select *from tb_Students_info; 输出结果:
  • 在开发过程中会遇到数据库表明不规范的情况,在表中已经有很多数据的情况下,如何修改数据库表名称呢?在MySQL中可以用以下语句来进行修改: alter table [table_name] rename to [new_name]; 在MySQL中也可以直接...
  • 使用T-SQL创建、修改数据库

    万次阅读 2016-04-06 09:40:32
    原文出处:... 一、使用Transact_SQL创建数据库 Transact_SQL语法如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create
  • 数据库中存储数据的方式:规则表---〉分区表索引组织表簇修改列名alter table 表明 rename column rename 老列名 to 新列名添加 字段alter table 表名 add(字段名 类型);删除字段alter table 表名 drop column 字段...
  • sql Server 创建表 插入 修改 删除

    千次阅读 2011-11-04 00:57:34
    update 表明 set 位置=值 where 位置=值 后面的位置=值是要修改的位置段 --修改同一个位置的多个值呢? update chiuan set mName='大神' , mAge=30 where mId=1 上面要修改的值用 逗号隔开哦,...
  • --以下是完整的SQL执行语句 if exists(select * from syscolumns where id=object_id('pub_BookingInfo') and name='SecurityLevel')  begin ALTER TABLE dbo.PUB_BookingInfo ALTER COLUMN SecurityLevel ...
  • SQL Server中修改字段类型和字段名称  --以下是完整的SQL执行语句  if exists(select * from syscolumns where id=object_id('数据表名称') and name='字段名') --判断该字段是否存在  begin  ...
  • MySQL SQL剖析(SQL profile)

    千次阅读 2014-10-11 08:51:30
    分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数可以在全局和session级别来设置。对于全局级别则作用于整个MySQL实例,而session级别紧影响当前...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,397
精华内容 30,558
关键字:

修改表明的sql