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
  • 相关阅读:
    HDFS集群优化篇
    JavaScript基础知识-流程控制之if语句
    JavaScript基础知识-代码块
    Linux下查看某个进程打开的文件数-losf工具常用参数介绍
    Linux下查看线程数的几种方法汇总
    Linux网卡调优篇-禁用ipv6与优化socket缓冲区大小
    UGUI Text(Label)
    Vuforia Android 6 Camera Error
    轻量级C#编辑器RoslynPad((基于Roslyn编译器))
    [AR]Vumark(下一代条形码)
  • 原文地址:https://www.cnblogs.com/downmoon/p/1019840.html
Copyright © 2011-2022 走看看