CREATE PROCEDURE [dbo].[StrsToRows](@strSource nvarchar(max),@strSeparator nvarchar(10)) AS BEGIN DECLARE @dwIndex INT ,@strResult NVARCHAR(1000),@sql NVARCHAR(max); set @sql='' SET @strSource = RTRIM(LTRIM(@strSource)); -- 消空格 SET @dwIndex = CHARINDEX(@strSeparator,@strSource); -- 取得第一个分隔符的位置 WHILE @dwIndex>0 BEGIN SET @strResult = LTRIM(RTRIM(LEFT(@strSource,@dwIndex-1))); SET @sql=@sql+''''+@strResult+''',' SET @strSource = SUBSTRING(@strSource,@dwIndex+1,LEN(@strSource)-@dwIndex); --将要操作的字符串去除已切分部分 SET @dwIndex=CHARINDEX(@strSeparator,@strSource); --循环量增加 END --处理最后一节 IF @strSource IS NOT NULL AND LTRIM(RTRIM(@strSource)) <> '' AND @strSource <> @strSeparator BEGIN set @sql=@sql+''''+@strSource+'''' END exec('select '+@sql) END