1、清空数据库日志
--
清空日志
DUMP
TRANSACTION
库名
WITH
NO_LOG
--
截断事务日志
BACKUP
LOG
数据库名
WITH
NO_LOG
--
收缩数据库
DBCC
SHRINKDATABASE(数据库名)
清空日志
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
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