存储过程(Stored Procedure)使用(三)
来源:互联网 发布:看篮球的软件 编辑:程序博客网 时间:2024/05/16 00:41
继第二篇后,后面还使用存储过程实现了其它功能
七 字符串的拆分:
如果存储过程参数只有一个,是nvarchar或varchar等字符串类型,如果有多个字符串,要多次调用此存储过程,这样要多次连接数据库,效率较低,可以把多个字符串组成一个字符串,并有符号分隔开,而在存储过程中对字符串进行拆分,再进行其它操作,这样,只需要调用一次存储过程,效率当然比多次调用高。如下就是如何进行字符串的拆分(字符串是用逗号分隔):
说明一下流程:找到字符串@Name中第一个分隔符“,”的位置,在SQL中,字符串的位置是从1开始的(要与C#中的字符串起始位置区别开来)。然后把此分隔符前的字符串取出,此字符串就是第一个需要的字符串,把字符串@Name减去已经取得的字符串及其分隔符。这样,再重新对已经减去取得字符串的字符串进行操作,不断重复。直到最后一个字符串,此字符串没有分隔符,它本身就是需要取的字符串。 这里几个函数要说明一下: (1)charindex(分隔符,字符串):取得指定的分隔符在字符串中的第一个位置。返回int,如字符串,”abc,efg,hij”,调用charindex(’,’,’ abc,efg,hij’),则返回4。如果没有匹配的分隔符,则返回0. (2)left(字符串,左起N个字符),返回此字符串左起N个字符。如调用left(abcdefg,3),则返回abc (3)right((字符串,右起N个字符),返回此字符串右起N个字符。如调用right(abcdefg,3),则返回efg。
八 随机选择表中记录: 如果需要从表中随机选择N条记录返回,则需要用到order by newid()。具体格式如下: select top N * from tableName order by newid()。 注意,在这里,N是一个已经确定的数,即在调用之前已经确定N的值。*表示要选择的表的列,可以添加where语句进行在符合条件的行中随机选择。如下面所示,从A表中随机选择2条符合条件的记录:
如果N是在SQL中通过其它表查询出来的数值才能确定,则可以先把语句写在变量中,待N确定后再执行它,如下所示。
九 临时表的使用: 如果需要先查询出一堆记录,再从这堆记录中进行取数据,那么用临时表是不错的选择。创建临时表,前表名需要加“#”。格式是: create table #t(参数名 参数类型),下面是实例,把表A,表B,表C中的名称都查询出来放在临时表中,然后取出临时表的全部名称。
至此,已经将所用到的使用存储过程的功能使用进行了介绍,希望可以帮到初学者,同时也可以记录一下自己学习的过程。呵呵
- 存储过程(Stored Procedure)使用(三)
- 存储过程(Stored Procedure)
- 存储过程(Stored Procedure)
- 存储过程(Stored Procedure)
- 存储过程(Stored Procedure)
- 存储过程(Stored Procedure)
- 存储过程(Stored Procedure)使用(一)
- 存储过程(Stored Procedure)使用(二)
- CLR存储过程(Stored Procedure)
- SQL存储过程(Stored Procedure)
- 存储过程 stored procedure
- 存储过程(Stored Procedure)
- Stored Procedure/存储过程
- 存储过程 Stored Procedure
- 存储过程(Stored Procedure)
- SQLSERVER中使用存储过程(Stored Procedure)
- Stored Procedure(存储过程)编写经验和优化措施
- Stored Procedure(存储过程)编写经验和优化措施
- 简单就好
- (转载)ASP.NET页面刷新方法总结
- 【转】一个软件工程师的6年总结
- (转载)ASP.NET的五大数据控件浅谈
- Google在MIT发布的难题
- 存储过程(Stored Procedure)使用(三)
- 十大知名半导体公司CEO“薪”情调查
- c#中如何打开一个文件夹
- 正则表达式
- ARM+s3c2440/s3c2410 学习讨论之2.3 ARM微处理器简介与芯片选型
- 对于所有语言的杂谈
- 在windows xp下安装oracle 10G
- 批处理:FOR的集与通配符上
- c#中(int)、int.Parse()、int.TryParse、Convert.To区别