The meta data is from an SQL 2012 Server.
I have posted alot more, find the whole list here.
Goto Definition or MetaData
Definition:
sys.sp_help_fulltext_system_components(nvarchar @component_type, nvarchar @param)
MetaData:
create procedure sys.sp_help_fulltext_system_components
@component_type sysname = NULL, -- component type wordbreaker or filter
@param sysname = NULL -- wordbreaker lcid, or filter extension, or PH name, or fullpath
as
-- dump catalogs that used the component that specified
if ((@component_type is null) or
@component_type not in ('wordbreaker','filter', 'protocol handler', 'fullpath', 'all'))
begin
raiserror(15600,-1,-1,'sys.sp_help_fulltext_system_components')
return 1
end
declare @reg_components TABLE(componenttype sysname,
componentname sysname,
clsid uniqueidentifier,
fullpath nvarchar(256),
version nvarchar(30),
manufacturer sysname)
-- list all components registered in system
if (@component_type = 'all')
begin
-- @param must be null if we want to dump all components registered in system
if (@param is not null)
begin
raiserror(15600,-1,-1,'sys.sp_help_fulltext_system_components')
return 1
end
-- select componentname, clsid, fullpath, version
insert into @reg_components
select componenttype,
componentname,
clsid,
fullpath,
version,
manufacturer
from sys.fn_ftcatcomponents(1, 0, 0)
end
-- list all components registered in system with specified type
-- if @param is specified, we are looking for specific component
if (@component_type in ('wordbreaker','filter', 'protocol handler'))
begin
-- if @param is not null, we only dump registered components which has name @param
insert into @reg_components
select componenttype,
componentname,
clsid,
fullpath,
version,
manufacturer
from sys.fn_ftcatcomponents(1, 0, 0)
where componenttype = @component_type AND ( @param is null OR componentname = @param)
end
if (@component_type = 'fullpath')
begin
-- CHECK PERMISSIONS (must be serveradmin) --
if (is_srvrolemember('serveradmin') = 0)
begin
raiserror(15247,-1,-1)
return 1
end
-- @param must not be null if we want to search based on fullpath
if (@param is null)
begin
raiserror(15600,-1,-1,'sys.sp_help_fulltext_system_components')
return 1
end
insert into @reg_components
select componenttype,
componentname,
clsid,
fullpath,
version,
manufacturer
from sys.fn_ftcatcomponents(1, 0, 0)
where fullpath = @param
end
-- dump registered components to user
select componenttype,
componentname,
clsid,
(case when is_srvrolemember('serveradmin') = 1 then fullpath else NULL end) AS [fullpath],
version,
manufacturer from @reg_components
-- if we find any registered components meets the requirment,
-- and if we search for a specific type of component, we need to dump all catalogs that used them.
if (@param is not null and @@ROWCOUNT > 0)
begin
select distinct smf.database_id as dbid, ftcomp.catalogid as ftcatid
from sys.master_files as smf cross apply sys.fn_ftcatcomponents(0, smf.database_id, smf.file_id) as ftcomp
join @reg_components as regcomp on (ftcomp.clsid = regcomp.clsid AND
ftcomp.componenttype collate catalog_default = regcomp.componenttype collate catalog_default)
where smf.type = 4 -- is_fulltext_catalog
end
No comments:
Post a Comment