IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[sys_sql_getNextWord]') AND type = 'P')
DROP PROCEDURE [dbo].[sys_sql_getNextWord]
GO
--如果返回varName 为空，则没有变量
create procedure [dbo].[sys_sql_getNextWord](
@exp varchar(2000),--分析表达式
@startInd int,--起始位置
@splitter varchar(4),     --分隔符
@word varchar(20) output,--变量名称
@frmInd int output,--变量起始位置  :: 开始
@toInd int output--变量结束位置  :: 结束
)
as
begin

declare @i int,@inameb int,@tokenLen int

select @word = null,@frmInd=@startInd,@toInd=0,@tokenLen=len(@splitter)

set @i=charindex(@splitter,@exp,@startInd)

if (@i=0)  --最后单词
begin
select @word=SUBSTRING(@exp,@startInd,100),@frmInd=@startInd,@toInd=LEN(@exp)
return
end

--变量名称
set @word = ltrim(rtrim(substring(@exp, @frmInd ,@i-@tokenLen-@frmInd + 1)))
set @toInd = @i+@tokenLen  --结束标志位置

return 

error:

return 
end