zoukankan      html  css  js  c++  java
  • sql中压缩日志文件和ntextl转化为varchar的处理

     

    1、清空数据库日志

    --清空日志
    DUMP TRANSACTION 库名 WITH NO_LOG

    --截断事务日志
    BACKUP LOG 数据库名 WITH NO_LOG

    --收缩数据库
    DBCC SHRINKDATABASE(数据库名)


    2、使用ntext型字段


    --B. 返回文本数据
    --
    下例从 pub_info 表中选择 pub_id 列和 pr_info 列的 16 字节文本指针。

    USE pubs
    GO
    SELECT pub_id, TEXTPTR(pr_info)
    FROM pub_info
    ORDER BY pub_id
    GO

    --下例显示如何在不使用 TEXTPTR 的情况下返回文本的前 8,000 个字节。


    USE pubs
    GO
    SET TEXTSIZE 8000
    SELECT pub_id, pr_info
    FROM pub_info
    ORDER BY pub_id
    GO





    -- --  DECLARE   @ptr   binary(16)  
    --
     -- 
    --
     -- -- select max(DATALENGTH(p_singleintro)) from ProductInfo 
    --
     -- -- group by P_ID
    --
     -- select @ptr=TEXTPTR(p_singleintro)  from ProductInfo 
    --
     -- --  where p_id=128


    -- C、ntext变量和varchar变量如何相加
     --ntext可以很大,而varchar最大8000个英文字符,当ntext很大时    
     -- 把ntext转化为varchar可能会把ntext截断而发生数据丢失,我的做法是使用updatetext,例如:  
      DECLARE   @ptr   binary(16)  
      
    DECLARE   @val   varchar(100)  
      
    SET   @val   =   'abcdefg'  
      
    SELECT   @ptr   =   TEXTPTR(p_intro)    
      
    FROM   ProductInfo  
      
    WHERE   p_id=128  
      
    --注:p_intro(备注)是表ProductInfo中的一个ntext列,p_id是ProductInfo的主键  
       
      
    UPDATETEXT   ProductInfo.p_intro   @ptr   0   0   @val    
      
    --注:这是把@val插入到p_intro列值的开头  
      --或者  
      UPDATETEXT   ProductInfo.p_intro   @ptr   null   0   @val  
      
    --注:这是把@val追加到p_intro列值的末尾  
       
      
    --上述方法变相的实现了ntext和varchar的相加,结果类型是ntext

    邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。
    助人等于自助!  3w@live.cn
  • 相关阅读:
    Unity3D屠龙战机项目总结
    10.2 MySQL数据库安装
    10.1 JDBC基础
    9.5 异常处理规则
    9.4 Java的异常跟踪栈
    9.3 使用throw抛出异常
    9.2 Checked异常和Runtime异常
    9.1 异常处理机制
    8.5 泛型和数组
    8.5 擦除和转换
  • 原文地址:https://www.cnblogs.com/downmoon/p/1019840.html
Copyright © 2011-2022 走看看