--清空日志 DUMPTRANSACTION 库名 WITH NO_LOG --截断事务日志 BACKUPLOG 数据库名 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 ORDERBY pub_id GO --下例显示如何在不使用 TEXTPTR 的情况下返回文本的前 8,000 个字节。 USE pubs GO SETTEXTSIZE8000 SELECT pub_id, pr_info FROM pub_info ORDERBY 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@ptrbinary(16) DECLARE@valvarchar(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 @ptr00@val --注:这是把@val插入到p_intro列值的开头 --或者 UPDATETEXT ProductInfo.p_intro @ptrnull0@val --注:这是把@val追加到p_intro列值的末尾 --上述方法变相的实现了ntext和varchar的相加,结果类型是ntext