ntext、text 和 image
用于存储大型非 Unicode 字符、Unicode 字符及二进制数据的固定长度和可变长度数据类型。Unicode 数据使用 UNICODE UCS-2 字符集。ntext可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext 在 SQL-92 中的同义词是 national text。text服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。image可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间。
用于存储大型非 Unicode 字符、Unicode 字符及二进制数据的固定长度和可变长度数据类型。Unicode 数据使用 UNICODE UCS-2 字符集。ntext可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext 在 SQL-92 中的同义词是 national text。text服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。image可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间。
CREATE TABLE tb(col ntext)
-- 插入
INSERT tb VALUES(REPLICATE( '0001,000,',1))
--查看
select * from tb
--结果
/*
0001,000,
*/
-- 追加数据
DECLARE @p binary(16)
SELECT @p=TEXTPTR(col) FROM tb
UPDATETEXT tb.col @p NULL 0 tb.col @p--值为 NULL 则将新数据追加到现有数据值中。
--值为 0 表示不删除数据。
--查看
select * from tb
--结果
/*
0001,000,0001,000,
*/--重新写内容
WRITETEXT tb.col @p 'text内容'
--查看
select * from tb
--结果
/*
text内容
*/--追加数据
DECLARE @s VARCHAR(800)
set @s='追加......!'
UPDATETEXT tb.col @p null 0 @s
--查看
select * from tb
--结果
/*
text内容追加......!
*/--删除测试表
drop table tb