CREATE PROCEDURE proc_keyword
@content nvarchar(max)
as
begin
declare @SplitName nvarchar(max)
declare @SubName nvarchar(max)
declare @Split nvarchar(10)
declare @CustomerWord nvarchar(max)
declare @Id int
declare @Ids nvarchar(max)
declare @tsql nvarchar(max)
set @CustomerWord=@content
set @Split=','
set @Ids=''
begin
DECLARE cur CURSOR FOR SELECT ID,[NewName] from dbo.lampon_News
OPEN cur
FETCH NEXT FROM cur into @Id,@SplitName
WHILE @@FETCH_STATUS = 0
begin
while(CHARINDEX(@Split,@SplitName)>0)
begin
SELECT @SubName = LTRIM(RTRIM(SUBSTRING(@SplitName,1,CHARINDEX(@Split,@SplitName )-1)))
if (CHARINDEX(@SubName,@CustomerWord)>0)
begin
set @Ids=@Ids+cast(@Id as nvarchar(max))+','
break
end
else
begin
set @SplitName=SUBSTRING(@SplitName ,CHARINDEX(@Split,@SplitName ) + 1,LEN(@SplitName))
end
end
if (CHARINDEX(@SplitName,@CustomerWord)>0)
begin
set @Ids=@Ids+cast(@Id as nvarchar(max))+','
end
FETCH NEXT FROM cur into @Id,@SplitName
end
Close cur
DEALLOCATE cur
if (LEN(@Ids)=0)
begin
set @tsql=' select * from dbo.lampon_News where ID =null';
end
else
begin
set @Ids=SUBSTRING(@Ids,1,LEN(@ids)-1)
set @tsql=' select * from dbo.lampon_News where ID in('+@Ids+')';
end
print @tsql
EXEC(@tsql)
end
end
execute proc_keyword '你好'