数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
SQL分隔字符串的存储过程

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

我在做一个项目时研究了查询多个关键字的技术,这是其中用到的一个技术。
“分隔字符串”存储过程的作用就是把“jiangjs,shenxy,cheng”类的字符串隔开保存到一个表中。
 
 
CREATE PROCEDURE [分隔字符串]
(
 @String NVARCHAR(1000),  -- 要分隔的字符串
 @SPLITCHAR NVARCHAR(10) = ',', -- 分隔字符
 @TableName NVARCHAR(50),  -- 存入的表名称
 @FieldName NVARCHAR(50) = '[ID]' -- 存入的字段名称
)
AS
 
-- 将字符串分隔开放进表中
 
DECLARE @L INT -- 第一个分隔字符的位置
DECLARE @S INT -- 第二个分隔字符的位置
SET @L = 0
SET @S = CHARINDEX(@SPLITCHAR, @String, @L)
 
WHILE @L <= LEN(@String)
BEGIN
 DECLARE @ID NVARCHAR(50) 
 
 IF @S = 0 SET @S = LEN(@String) + 1 -- 如果到最后一个字符串那么第二个分隔字符的位置就是这个字符串的长度加一
 
 SET @ID = SUBSTRING(@String, @L, @S - @L) -- 取值
 SET @L = @S + 1
 SET @S = CHARINDEX(@SPLITCHAR, @String, @L)
 
 IF LTRIM(RTRIM(@ID)) = '' CONTINUE -- 如果是空字符串就跳过
 
 DECLARE @SQL NVARCHAR(1000)
 SET @SQL = 'INSERT INTO ' + @TableName + ' ('+ @FieldName +') VALUES(''' + @ID + ''')'
 EXEC sp_executesql @SQL
END
GO
 
----------
Not
MSN Messenger : [email protected]
 



相关文章

相关软件