小妖女 发表于 2015-1-16 22:33:01

MSSQL网站制作之字符串分拆查询

在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。字符串
原帖地点:http://community.csdn.net/Expert/topic/3230/3230422.xml?temp=.7884485

有如许的数据

字段1字段22,4,233,6,34523,56,43,3,67取数据的是查询字段1中前提是4那末在字段2在取的是6与67了局以下============46467

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

--处置示例

--测试数据createtabletb(字段1varchar(10),字段2varchar(10))inserttbselect2,4,23,3,6,345unionallselect23,56,4,3,3,67go

--写个自界说函数来处置createfunctionf_value(@avarchar(10),@bvarchar(10),@cvarchar(10))returnsvarchar(10)asbegindeclare@iint,@posintselect@a=left(@a,charindex(,+@c+,,,+@a+,)-1),@pos=len(@a)-len(replace(@a,,,))+1,@i=charindex(,,@b)

while@i>0and@pos>1select@b=substring(@b,@i+1,8000),@i=charindex(,,@b),@pos=@pos-1return(case@poswhen1thencasewhen@i>0thenleft(@b,@i-1)else@bendelseend)endgo

--查询declare@avarchar(10)set@a=23--查询参数

--查询语句selectA=@a,B=dbo.f_value(字段1,字段2,@a)fromtbgo

--删除测试droptabletbdropfunctionf_value

/*--测试了局

AB--------------------23345233

(所影响的行数为2行)--*/
恢复到之前的某个状态,是需要数据的。这数据可以是a)回滚步骤或者b)操作之前的数据状态原文。

谁可相欹 发表于 2015-1-19 16:25:18

是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。

灵魂腐蚀 发表于 2015-1-28 08:28:09

而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~

小魔女 发表于 2015-2-5 20:10:31

可以动态传入参数,省却了动态SQL的拼写。

分手快乐 发表于 2015-2-13 11:39:17

这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。

admin 发表于 2015-3-3 20:50:25

入门没那么困难,精通没那么容易

活着的死人 发表于 2015-3-11 13:39:26

备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。

再见西城 发表于 2015-3-18 16:36:56

可以动态传入参数,省却了动态SQL的拼写。

老尸 发表于 2015-3-26 04:28:52

大侠们有推荐的书籍和学习方法写下吧。
页: [1]
查看完整版本: MSSQL网站制作之字符串分拆查询