MSSQL网页设计摹拟字符串处置函数 stuff 的存储历程,...
有了数据以后,我们就要想一个比较统一的方法来闪回。上面我们说了对于DML操作,可以通过反向执行所有逆操作来实现,对于语句里面的DDL,只能直接跳过。原因是一个DDL不一定有直接的逆操作。存储历程|函数|字符串ifexists(select*fromdbo.sysobjectswhereid=object_id(N.)andOBJECTPROPERTY(id,NIsProcedure)=1)dropprocedure.
GO/*--Ntext字段处置
摹拟字符串处置函数stuff
完成表中ntext字段的stuff处置
注重,表中必要有列名为:id的主键(或标识字段),数据范例为int
假如没有这个主键字段,大概是其他范例,则对应的必要修正存储历程
--邹建2004.07--*/
/*--挪用示例
--测试数据
createtabletb(idintidentity(1,1),contentntext)
inserttbselecta;sd
unionallselecta;sdfkjas2qasdfdfsg45yhjhdfg45645a
--挪用存储历程,将第8~9的字符交换成中国
execp_stufftb,content,8,2,中国,
select*fromtb
droptabletb
--*/
createprocp_stuff
@tbnamesysname,--要处置的表名
@fdnamesysname,--text/ntext字段名
@startint=null,--入手下手地位,NULL暗示追加数据
@lengthint=null,--交换的长度
@strnvarchar(4000),--要拔出的字符串
@wherenvarchar(1000)=--要处置的纪录的前提
as
if@strisnullreturn
declare@snvarchar(4000)
set@s=
declare@idint,@ptrvarbinary(16),@start1int
declaretbcursorlocalfor
selectid,start=datalength([+@fdname+])/2
from[+@tbname+]
+caseisnull(@where,)whenthen
elsewhere+@whereend+
opentb
fetchtbinto@id,@start1
while@@fetch_status=0
begin
select@ptr=textptr(content)
from[+@tbname+]
whereid=@id
if@startisnullor@start1<@start
updatetext[+@tbname+].[+@fdname+]@ptrnullnull@str
else
begin
set@start1=@start-1
updatetext[+@tbname+].[+@fdname+]@ptr@start1@length@str
end
fetchtbinto@id,@start1
end
closetb
deallocatetb
execsp_executesql@s
,N@startint,@lengthint,@strnvarchar(4000)
,@start,@length,@str
go
这章描述如何检查和处理在MySQL数据库中的数据损坏。如果你的表损坏很多,你应该尝试找出其原因!见G.1调试一个MySQL服务器。 从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。 对于微软系列的东西除了一遍遍尝试还真没有太好的办法 微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。 可以动态传入参数,省却了动态SQL的拼写。 连做梦都在想页面结构是怎么样的,绝非虚言 我个人认为就是孜孜不懈的学习 XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!) 光写几个SQL实在叫无知。
页:
[1]