`

[转]ms server 处理text,ntext,image字段的函数

阅读更多

文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/4_webprogram/asp.net/netjs/20091229/185886.html

 

SQL Server  专门提供了处理text,ntext,image字段的函数,他们是:

TEXTPTR
TEXTVALID
READTEXT
UPDATETEXT
WRITETEXT
一般作用方法:

写字段WRITETEXT :
DECLARE @val varbinary(16)
SELECT @val = TEXTPTR(字段名) FROM 表名 where 条件
WRITETEXT 表名.字段名 @val '您的长字符串,一般都是大于8000的,不大于也行'
--说明:第二行加上条件 可以定位当前操作的是哪一条记录。

修改字段UPDATETEXT:
DECLARE @val varbinary(16)
SELECT @val = TEXTPTR(字段名) FROM 表名 where 条件
UPDATETEXT 表名.字段名 @val 0 NULL '您的长字符串,一般都是大于8000的,不大于也行'
--说明:第二行加上条件 可以定位当前操作的是哪一条记录,第三条里的0是说这个字段里从第0个字符开始,NULL表示,从0开始到这个字段最后的所有字符删掉


读字段READTEXT:
DECLARE @val varbinary(16)
SELECT @val = TEXTPTR(字段名) FROM 表名 where 条件
READTEXT 表名.字段名 @val 0 40000
--说明:第二行加上条件 可以定位当前操作的是哪一条记录,第三行后两个参数意为:从第0个字符开始,读40000个字符。
--您可以觉得这个函数完全没哈用处,是呀,我就感觉他没用,读取嘛,怎么读都可以读出来,所以直接读就可以了。


 


--------------------------------------------------------------------------------

官方说明:

UPDATETEXT
更新现有 text、ntext 或 image 字段。使用 UPDATETEXT 在适当的位置更改 text、ntext 或 image 列的一部分。使用 WRITETEXT 来更新和替换整个 text、ntext 或 image 字段。

语法
UPDATETEXT { table_name.dest_column_name dest_text_ptr }
    { NULL | insert_offset }
    { NULL | delete_length }
    [ WITH LOG ]
    [ inserted_data
        | { table_name.src_column_name src_text_ptr } ]

参数
table_name.dest_column_name

要更新的表和 text、ntext 或 image 列的名称。表名和列名必须符合标识符的规则。有关更多信息,请参见使用标识符。指定数据库名和所有者名是可选的。

dest_text_ptr

指向要更新的 text、ntext 或 image 数据的文本指针的值(由 TEXTPTR 函数返回)。dest_text_ptr 必须为 binary(16)。

insert_offset

以零为基的更新起始位置。对于 text 或 image 列,insert_offset 是在插入新数据前从现有列的起点开始要跳过的字节数对于 ntext 列,insert_offset 是字符个数(每个 ntext 字符占用 2 个字节)。开始于这个以零为基的起始点的现有 text、ntext 或 image 数据向右移,为新数据腾出空间。值为 0 表示将新数据插入到现有位置的开始处。值为 NULL 则将新数据追加到现有数据值中。

delete_length

是从 insert_offset 位置开始的、要从现有 text、ntext 或 image 列中删除的数据长度。delete_length 值对于 text 和 image 列用字节指定,对于 ntext 列用字符指定。每个 ntext 字符占用 2 个字节。值为 0 表示不删除数据。值为 NULL 则删除现有 text 或 image 列中从 insert_offset 位置开始到末尾的所有数据。

WITH LOG

在 Microsoft® SQL Server™ 2000 中被忽略。在该版本中,日志记录由数据库的有效恢复模型决定。

inserted_data

是要插入到现有 text、ntext 或 image 列 insert_offset 位置的数据。这是单个 char、nchar、varchar、nvarchar、binary、varbinary、text、ntext 或 image 值。inserted_data 可以是文字或变量。

table_name.src_column_name

用作插入数据源的表或 text、ntext 或 image 列的名称。表名和列名必须符合标识符的规则。

src_text_ptr

指向作为插入数据源使用的 text、ntext 或 image 列的文本指针值(由 TEXTPTR 函数返回)。

 

WRITETEXT
允许对现有的 text、ntext 或 image 列进行无日志记录的交互式更新。该语句将彻底重写受其影响的列中的任何现有数据。WRITETEXT 语句不能用在视图中的 text、ntext 和 image 列上。

语法
WRITETEXT { table.column text_ptr }
    [ WITH LOG ] { data }

参数
table.column

要更新的表和 text、ntext 或 image 列的名称。表名和列名必须符合标识符的规则。有关更多信息,请参见使用标识符。指定数据库名和所有者名是可选的。

text_ptr

指向 text、ntext 或 image 数据的指针的值。text_ptr 的数据类型必须为 binary(16)。若要创建文本指针,请对 text、ntext 或 image 列用非 NULL 数据执行 INSERT 或 UPDATE 语句。有关创建文本指针的更多信息,请参见 INSERT 或 UPDATE。

WITH LOG

在 Microsoft® SQL Server™ 2000 中忽略。日志记录由数据库的实际恢复模型决定。

data

要存储的实际 text、ntext 或 image 数据。data 可以是字面值,也可以是变量。对于 text、ntext 和 image 数据,可以用 WRITETEXT 交互插入的文本的最大长度大约是 120 KB

 

分享到:
评论

相关推荐

    如何在SQL Server 2000中处理text/image数据.pdf

    在SQL Server 2000中处理text/image数据的知识点可以分为以下几个方面进行详细说明: 1. text和image数据类型的用途: - text数据类型专门用于存储超过8,000个字符的ASCII文本数据,适合存储诸如长文章、HTML文档...

    sqlserver 中ntext字段的批量替换(updatetext的用法)

    1. SQL Server不允许在`ntext`、`text`或`image`字段上直接应用`REPLACE`函数,这使得无法直接通过SQL查询更新这些字段的内容。 2. 尝试通过将`ntext`字段转换成`varchar(8000)`,然后使用`REPLACE`函数替换,但这种...

    SQL中函数 replace 的参数1的数据类型ntext无效的解决方法

    需要注意的是,SQL Server 2016及更高版本已经不再支持`ntext`、`text`和`image`数据类型,因此,如果你正在使用较新版本的SQL Server,考虑将这些字段升级到`nvarchar(max)`、`varchar(max)`和`varbinary(max)`,...

    MSSQL报错:参数数据类型 text 对于 replace 函数的参数 1 无效的解决办法

    遇到"参数数据类型 text 对于 replace 函数的参数 1 无效"的错误时,解决方法是先将text或ntext类型的字段转换为varchar(max)或nvarchar(max)。这是因为varchar(max)和nvarchar(max)允许执行像`REPLACE`这样的字符串...

    基于SQL Server的Image数据类型存取技巧.pdf

    具体来说,通过TEXTPTR函数可以获取一个指向text或image数据的指针,WRITETEXT和UPDATETEXT函数则可以用来向这些数据类型写入或更新数据。 例如,创建一个存储图像数据的表tblBooksUpload可以使用如下语法: ```sql...

    MSSQL数据库获取TEXT字段的内容长度

    对于TEXT、IMAGE、VARBINARY、nvarchar和ntext这些可变长度的数据类型,DATALENGTH函数尤其适用。 例如,假设我们有一个名为`articles`的表,其中有一个TEXT类型的字段`content`,我们可以这样获取第一条记录的`...

    用VB实现SQL Server中的图像数据的存取.pdf

    3. UPDATETEXT:该函数用于更新表中的text、ntext或image字段。它的基本语法结构是 UPDATETEXT {table_name {. column_name | view_name {. column_name} text_ptr NULL insert_offset NULL delete_length } [WITH ...

    浅谈如何使用SQL中的image和text数据.pdf

    在Microsoft SQL Server数据库中,image和text数据类型在SQL Server 2000之后被替换为varbinary(max)和varchar(max)或nvarchar(max)。但是在许多遗留系统中,可能仍然在使用旧的数据类型,如text和image。 image...

    查询条件是text的解决办法-sql sql text 数据类型为text解决办法

    为了更好地兼容性和性能,`text`和`ntext`分别被`varchar(max)`和`nvarchar(max)`所替代,而`image`则被`varbinary(max)`替代。这意味着在进行数据迁移或编写新查询时,需要注意到这些变化: - **`text` → `...

    sqlserver-oracle 数据类型对照

    - `text`和`ntext`在SQL Server中对应Oracle的`CLOB`和`NCLOB`,用于存储大量文本数据。 - `image`在SQL Server中对应Oracle的`BLOB`,用于存储二进制大数据。 接下来,我们讨论SQL Server和Oracle的函数对照: ...

    SQL SERVER 2000开发与管理应用实例

    3.7.4 text与image字段转换 101 3.7.5 ntext字段的REPLACE处理 103 第 4 章 排序规则 107 4.1 字符存储编码与排序规则 107 4.1.1 字符数据的存储编码 107 4.1.2 UNICODE 108 4.1.3 排序规则 109...

    sqlserver2000基础(高手也有用)

    3.7.4 text与image字段转换 101 3.7.5 ntext字段的REPLACE处理 103 第 4 章 排序规则 107 4.1 字符存储编码与排序规则 107 4.1.1 字符数据的存储编码 107 4.1.2 UNICODE 108 4.1.3 排序规则 109 ...

    SQLServer数据库导入MySQL数据库体验[文].pdf

    然而,这种方式存在一些问题,例如SQL Server中的ntext、image等特殊数据类型无法直接映射到MySQL,可能需要手动处理或转换。此外,时间戳与日期时间类型的转换也是个挑战,特别是在MySQL中以int类型存储时间戳的...

    sqlserver导入mysql的方法.doc#资源达人分享计划#

    首先,SQL Server特有的数据类型如ntext、image可能无法直接映射到MySQL的对应类型。对于ntext,可以尝试转换为varchar(max)或其他适合的文本类型;而对于image,可以将其转换为二进制字段(binary或varbinary)。...

    Sqlserver2000经典脚本

    │ 3.7.4 text与image字段转换处理示例.sql │ │ 3.7.5 ntext字段的REPLACE处理示例.sql │ │ │ └─其他 │ varbinary转换成字符串.sql │ 关键字搜索.sql │ 分解公式.sql │ ...

    Microsoft SQL Server环境中图像数据的存取方法研究.pdf

    文章指出,SQL Server作为一种广泛使用的大型数据库管理系统,提供了text、ntext和image等数据类型来存储大文本或图像文件。为了实现图像文件的存取,文章强调了存储过程的重要性,这是一种经编译和优化的Transact-...

    server数据库导入到Mysql数据库中[文].pdf

    - 数据类型不兼容:如SQL Server的`ntext`、`image`等类型无法直接映射到MySQL相应的类型。 - 时间戳冲突:如果在MySQL中时间字段使用整型(保存时间戳),会导致导入时的冲突。 - 字段类型不匹配:SQL Server...

    SQL---行转列 详细描述

    在SQL Server 2000中,由于缺乏直接支持行转列的内置函数或语句,通常需要通过动态SQL来实现。具体步骤如下: 1. **构建动态SQL语句**:首先,需要查询出所有需要被转换为列的值,并基于这些值构造动态SQL。 2. **...

Global site tag (gtag.js) - Google Analytics