高手解答 NTEXT 字符串查询 我有一个表 T 中有字段W 和 PW是NTEXT类型 P是nvarchar我想查询W中第一个‘<IMG src="upload/’到‘" border=0>’中的字符串插到P里 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 patindex 对text类型换为ntext 的字段返回的数值是 字符 的位置substring 用与 text 的时候 “start 和 length 指定字节的位置” 用与 nText 的时候 “start 和 length 指定字符的位置”create procedure p_replacentext(@vTable varchar(50), @vField varchar(30),@vBefore varchar(8000),@vAfter varchar(8000))asbegin Declare @Sql nvarchar(4000) declare @p_s varchar(800) Declare @p binary(16),@postion int,@rplen int set @Sql=N'Select @p=textptr('+@vField+'),@rplen=len('''+@vBefore+'''),@postion=patindex(''%'+@vBefore+'%'','+@vField+')-1 from '+@vTable exec sp_executesql @Sql,N'@p binary(16) output,@rplen int output,@postion int output ',@p output,@rplen output,@postion output while @postion >= 0 begin exec master.dbo.xp_varbintohexstr @p, @p_s out set @Sql=N'updatetext '+@vTable+'.'+@vField+' '+@p_s+' '+cast(@postion as varchar(8))+' '+cast(@rplen as varchar(4))+' '''+@vAfter+'''' print @Sql exec(@Sql) set @Sql=N'select @postion=patindex(''%'+@vBefore+'%'','+@vField+')-1 from '+@vTable exec sp_executesql @Sql,N'@postion int output ',@postion output endend ---------create TABLE t(col1 char(1000), col2 ntext)INSERT t SELECT '', 'aa北京中华人民共和国北京天安门北京asdsdf'+REPLICATE('a', 8000)select * from texec p_replacentext 't','col2','北京','首都' select * from tdrop table t--结果aa北京中华人民共和国北京天安门北京asdsdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aa首都中华人民共和国首都天安门首都asdsdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...-----------create TABLE t(col1 char(1000), col2 ntext)INSERT t SELECT '', 'aa北京中华人民共和国北京天安门北京asdsdf'+REPLICATE('a', 8000)select * from texec p_replacentext 't','col2','aa','首都' select * from tdrop table t--结果aa北京中华人民共和国北京天安门北京asdsdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa首都北京中华人民共和国北京天安门北京asdsdf首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都--后台执行(所影响的行数为 1 行)(所影响的行数为 1 行)updatetext t.col2 0xFFFF0812000000003801000001000000 0 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 24 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 26 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 28 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 30 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 32 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 34 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 36 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 38 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 40 2 '首都'...updatetext t.col2 0xFFFF0812000000003801000001000000 7928 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7930 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7932 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7934 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7936 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7938 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7940 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7942 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7944 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7946 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7948 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7950 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7952 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7954 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7956 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7958 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7960 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7962 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7964 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7966 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7968 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7970 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7972 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7974 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7976 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7978 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7980 2 '首都'updatetext t.col2 0xFFFF0812000000003801000001000000 7982 2 '首都'(所影响的行数为 1 行)---------------http://community.csdn.net/Expert/topic/5296/5296764.xml?temp=.9509546 求一日期表 急求一条 截取字段 的 SQL 语句 ! 非常感谢!!! 请教各位下面功能的sql语句该如何写呢? 一奇怪的问题 sqlserver2005权限问题? 请xxj()来领分!(答谢对ORACLE和SQL SERVER问题的讨论) 请问怎么在库中直接定义表? 请高手指点 一个让我迷惑的问题,高分求解 两个问题!系统的odbc比用户的odbc到底有什么优点!如何优化linkserver!sqlserver SQL SERVER 除了日志满了不能连接外还有什么情况下会导致不能连接?(网络及配置都是好的) 为什么我找不到数据库下的节点
substring 用与 text 的时候 “start 和 length 指定字节的位置”
用与 nText 的时候 “start 和 length 指定字符的位置”create procedure p_replacentext(@vTable varchar(50), @vField varchar(30),@vBefore varchar(8000),@vAfter varchar(8000))
as
begin
Declare @Sql nvarchar(4000)
declare @p_s varchar(800)
Declare @p binary(16),@postion int,@rplen int
set @Sql=N'Select @p=textptr('+@vField+'),@rplen=len('''+@vBefore+'''),@postion=patindex(''%'+@vBefore+'%'','+@vField+')-1 from '+@vTable
exec sp_executesql @Sql,N'@p binary(16) output,@rplen int output,@postion int output ',@p output,@rplen output,@postion output
while @postion >= 0
begin
exec master.dbo.xp_varbintohexstr @p, @p_s out
set @Sql=N'updatetext '+@vTable+'.'+@vField+' '+@p_s+' '+cast(@postion as varchar(8))+' '+cast(@rplen as varchar(4))+' '''+@vAfter+''''
print @Sql
exec(@Sql)
set @Sql=N'select @postion=patindex(''%'+@vBefore+'%'','+@vField+')-1 from '+@vTable
exec sp_executesql @Sql,N'@postion int output ',@postion output
end
end ---------
create TABLE t(col1 char(1000), col2 ntext)
INSERT t SELECT '', 'aa北京中华人民共和国北京天安门北京asdsdf'+REPLICATE('a', 8000)
select * from t
exec p_replacentext 't','col2','北京','首都'
select * from t
drop table t
--结果
aa北京中华人民共和国北京天安门北京asdsdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aa首都中华人民共和国首都天安门首都asdsdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...-----------
create TABLE t(col1 char(1000), col2 ntext)
INSERT t SELECT '', 'aa北京中华人民共和国北京天安门北京asdsdf'+REPLICATE('a', 8000)
select * from t
exec p_replacentext 't','col2','aa','首都'
select * from t
drop table t--结果
aa北京中华人民共和国北京天安门北京asdsdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa首都北京中华人民共和国北京天安门北京asdsdf首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都
--后台执行(所影响的行数为 1 行)
(所影响的行数为 1 行)updatetext t.col2 0xFFFF0812000000003801000001000000 0 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 24 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 26 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 28 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 30 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 32 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 34 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 36 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 38 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 40 2 '首都'
.
.
.
updatetext t.col2 0xFFFF0812000000003801000001000000 7928 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7930 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7932 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7934 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7936 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7938 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7940 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7942 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7944 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7946 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7948 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7950 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7952 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7954 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7956 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7958 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7960 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7962 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7964 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7966 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7968 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7970 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7972 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7974 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7976 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7978 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7980 2 '首都'
updatetext t.col2 0xFFFF0812000000003801000001000000 7982 2 '首都'(所影响的行数为 1 行)
---------------
http://community.csdn.net/Expert/topic/5296/5296764.xml?temp=.9509546