感谢关注,有办法解决吗?痛苦啊
解决方案 »
- 根据一个表的字段查询在另一个表中查询数据
- 第一次接触SQL的问题
- 在sql 管理器中新建用户时,有个服务器角色选择,其中有很多值,如何区分?...
- 50分求教SQL
- 扩展存储过程中,如何调用系统中的其它存储过程?
- SQLServer2005上的备份数据库可以在SQLServer2000上还原吗
- 如何获得SQLSERVER所有数据库的空间实际使用、未使用以及总的大小
- 事务问题
- 备份问题
- 我想把SQLSERVER2000完全备份到已映射网络上的一个硬盘上,请问该怎么备份,好像看不到盘符啊(
- 同时装有sql2000,sql2005,网络上怎么访问sql2005
- 一个关于数据重复的问题 看似简单 但却搞了好久也解决不了 求教ing
可通过以下方式检索 ntext、text 或 image 值: 在 SELECT 语句中引用该列。
例如,以下查询将返回每个出版商在 pr_info 列中的所有信息:USE pubs
SELECT pr_info
FROM pub_info这是在使用 API(例如 ADO、OLE DB、ODBC 或 DB-Library)的数据库应用程序中所使用的方法。该列被绑定到一个程序变量上,然后使用特殊的 API 函数或方法逐块检索数据。如果在 Transact-SQL 脚本、存储过程和触发器中使用这种方法,则只能用于相对较短的值。如果数据的长度大于 SET TEXTSIZE 中指定的长度,则必须增大 TEXTSIZE 或使用其它方法。当前的 TEXTSIZE 设置通过 @@TEXTSIZE 函数报告,并使用 SET TEXTSIZE 语句进行更改:SET TEXTSIZE 64512TEXTSIZE 的默认设置为 4096 (4 KB)。以下语句将 TEXTSIZE 重置为默认值:SET TEXTSIZE 0如果数据长度小于 TEXTSIZE,则将返回所有数据。DB-Library API 还支持 dbtextsize 参数,该参数可控制可以选择的 ntext、text 和 image 数据的长度。用于 SQL Server 的 Microsoft OLE DB 提供程序和 SQL Server ODBC 驱动程序自动将 @@TEXTSIZE 设置为最大值 2 GB。使用 TEXTPTR 函数可获得传递给 READTEXT 语句的文本指针。
READTEXT 语句用于读取 ntext、text 或 image 数据块。例如,以下查询将返回每个出版商的示例文本数据的前 25 个字符(或第一行):USE pubs
DECLARE @textpointer varbinary(16)
SELECT @textpointer = TEXTPTR(pr_info)
FROM pub_info
READTEXT pub_info.pr_info @textpointer 1 25使用 SUBSTRING 函数可检索从列开头特定偏移位置开始的数据块。
例如,以下查询将返回每个出版商的示例文本数据的前 25 个字符(或第一行):USE pubs
SELECT SUBSTRING(pr_info, 1, 25) AS pr_info
FROM pub_info使用 PATINDEX 函数可检索一些特定字节组合的偏移量。
然后可以在 SUBSTRING 函数或 READTEXT 语句中使用该值检索数据。例如,以下查询将在 pub_info 表的 pr_info 列中搜索 Germany 字符串,并返回起始位置 103(字符串 Germany 的 G 在 pr_info 列的第 103 个字符处开始):USE pubs
SELECT PATINDEX('%Germany%', pr_info) AS pr_info
FROM pub_infoPATINDEX 只在文本和字符数据类型上操作;它不接受image 值。检索 ntext、text 或 image 的各部分值
这些方法不局限于检索从第一个字节开始的整个 ntext、text 或 image 值。可以将这些方法组合起来进行更灵活的处理,检索 ntext、text 或 image 值的不同部分。例如,以下 SELECT 语句将检索 text 值的起始标记和结束标记之间的部分:USE Northwind
GO
CREATE TABLE TextParts (ColA INT PRIMARY KEY, ColB TEXT)
GO
INSERT INTO TextParts
VALUES( 1,
'Sample string START TAG What I want END TAG Trailing text.')
GO
SELECT SUBSTRING( ColB,
/* Calculate start as start of tag + tag length. */
(PATINDEX('%START TAG%', ColB) + 10),
/* Calculate SUBSTRING length as end - start. */
(
PATINDEX('%END TAG%', ColB) -
( PATINDEX('%START TAG%', ColB) + 10 )
)
)
FROM TextParts
GO下面是结果集:------------------------
What I want(1 row(s) affected)说明 当选择 image 数据时,返回的值包含字符 0x,表示该数据是十六进制。这两个字符算作是 TEXTSIZE 的一部分。