仓酷云 发表于 2015-1-16 22:28:05

MSSQL编程:SQL分开字符串的存储历程

在JOIN操作中(需要从多个数据表提取数据时),MySQL只有在主键和外键的数据类型相同时才能使用索引。存储历程|字符串我在做一个项目时研讨了查询多个关头字的手艺,这是个中用到的一个手艺。“分开字符串”存储历程的感化就是把“jiangjs,shenxy,cheng”类的字符串离隔保留到一个表中。CREATEPROCEDURE[分开字符串]
(
@StringNVARCHAR(1000),--要分开的字符串
@SPLITCHARNVARCHAR(10)=,,--分开字符
@TableNameNVARCHAR(50),--存进的表称号
@FieldNameNVARCHAR(50)=--存进的字段称号
)
AS--将字符串分开开放进表中DECLARE@LINT--第一个分开字符的地位
DECLARE@SINT--第二个分开字符的地位
SET@L=0
SET@S=CHARINDEX(@SPLITCHAR,@String,@L)WHILE@L<=LEN(@String)
BEGIN
DECLARE@IDNVARCHAR(50)IF@S=0SET@S=LEN(@String)+1--假如到最初一个字符串那末第二个分开字符的地位就是这个字符串的长度加一

SET@ID=SUBSTRING(@String,@L,@S-@L)--取值
SET@L=@S+1
SET@S=CHARINDEX(@SPLITCHAR,@String,@L)IFLTRIM(RTRIM(@ID))=CONTINUE--假如是空字符串就跳过DECLARE@SQLNVARCHAR(1000)
SET@SQL=INSERTINTO+@TableName+(+@FieldName+)VALUES(+@ID+)
EXECsp_executesql@SQL
END
GO----------NotMSNMessenger:notking@hotmail.com对于insert操作,只需要把event_type改成DELETE_ROWS_EVENT;对于delete操作,改成WRITE_ROWS_EVENT

小魔女 发表于 2015-1-19 13:42:15

外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。

简单生活 发表于 2015-1-25 21:45:37

对于微软系列的东西除了一遍遍尝试还真没有太好的办法

透明 发表于 2015-2-4 06:09:36

我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力

深爱那片海 发表于 2015-2-9 17:09:29

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

灵魂腐蚀 发表于 2015-2-27 12:22:59

SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.

愤怒的大鸟 发表于 2015-3-9 03:41:48

大家注意一点。如下面的例子:

不帅 发表于 2015-3-16 20:19:23

对于微软系列的东西除了一遍遍尝试还真没有太好的办法

飘飘悠悠 发表于 2015-3-23 00:53:59

然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
页: [1]
查看完整版本: MSSQL编程:SQL分开字符串的存储历程