SQL分隔字符串的存储过程

王朝mssql·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

我在做一个项目时研究了查询多个关键字的技术,这是其中用到的一个技术。

“分隔字符串”存储过程的作用就是把“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 : notking@hotmail.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航