数据库的全文查找
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
--The Author : <£Mιяаçιе_ξкч>
--Create date : <£2012-06-13 09:37:58>
--Description : <£全文查找数据>
-- Exec FIND 'CST_ID','LC12060010'
-- =============================================
CREATE PROCEDURE FIND
-- Add the parameters for the stored procedure here
@FindFieldsWordColumn Nvarchar(20)='CST_ID'
,@FindFieldsValue Nvarchar(20)
AS
BEGIN
SET NOCOUNT ON;
Create TABLE #TempTable (FindValues Nvarchar(MAX))
DECLARE MyCursor CURSOR
FOR
SELECT TOP 50 'SELECT @ReturnVlaue= '+@FindFieldsWordColumn+' FROM ' +B.NAME + ' WHERE '+@FindFieldsWordColumn+' = '''+@FindFieldsValue+'''' as WillFindWords FROM SYS.SYSCOLUMNS AS A JOIN SYS.OBJECTS AS B ON A.ID=B.OBJECT_ID
WHERE A.NAME =@FindFieldsWordColumn AND B.TYPE='U' and B.NAME like 'CROSS_%';--与你的数据库统一命名有关
--打开一个游标
OPEN MyCursor;
--循环一个游标
DECLARE @SQLWords nvarchar(200);
FETCH NEXT FROM MyCursor INTO @SQLWords;
WHILE @@FETCH_STATUS =0
BEGIN
--Print @SQLWords;
declare @paramstring nvarchar(200)
declare @output_result nvarchar(200)='';
set @paramstring='@ReturnVlaue nvarchar(200) output'
exec sp_executesql @SQLWords,@paramstring,@ReturnVlaue =@output_result output
--Print @output_result
IF @output_result =@FindFieldsValue
Begin
Print REPLACE(@SQLWords,'@ReturnVlaue=','')
Insert into #TempTable
Select REPLACE(@SQLWords,'@ReturnVlaue=','')
end
FETCH NEXT FROM MyCursor INTO @SQLWords;
END
--关闭游标
CLOSE MyCursor
--释放资源
DEALLOCATE MyCursor
Select * from #TempTable
Grop Table #TempTable
END
GO