• 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
  • 相关阅读:
    oracle实例的内存(SGA和PGA)调整,优化数据库性能
    Redhat 安装perl模块
    三、Java基础---------关于继承、构造函数、静态代码块执行顺序示例讲解
    二、Java基础--02
    一、Java基础--01
    提醒用户收到短信
    手机屏幕更改
    查看手机信息和SIM卡信息
    还原和设置手机桌面背景
    wifi的开与关
  • 原文地址:https://www.cnblogs.com/downmoon/p/1019840.html
Copyright © 2020-2023  润新知