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_fulltext_table(nvarchar @tabname, varchar @action
, nvarchar @ftcat
, nvarchar @keyname)
MetaData:
create proc sys.sp_fulltext_table @tabname nvarchar(517), @action varchar(50), @ftcat sysname = NULL, -- create: catalog name @keyname sysname = NULL -- create: name of unique index as declare @execstring nvarchar (4000) declare @newtabname nvarchar (1035) set nocount on -- sp_fulltext_table will run under read committed isolation level -- set transaction isolation level READ COMMITTED if (db_name() in ('master','tempdb','model')) begin raiserror(9966, -1, -1) return 1 end -- add quote to table name. fn_quotefourpartname can add quote to four part name -- select @newtabname=sys.fn_quotefourpartname(@tabname,N'[') if @newtabname is null begin raiserror(15600,-1,-1,'sys.sp_fulltext_table') return 1 end -- VALIDATE TABLE NAME -- -- (1) Must exist in current database declare @objid int select @objid = object_id(@newtabname, 'local') if @objid is null begin declare @curdbname sysname select @curdbname = db_name() raiserror(15009,-1,-1 ,@tabname, @curdbname) return 1 end -- CHECK PERMISSION ON TABLE -- if (is_member('db_owner') = 0) AND (is_member('db_ddladmin') = 0) AND (is_member(user_name(ObjectProperty(@objid, 'ownerid'))) = 0) begin raiserror(15247,-1,-1) return 1 end -- VALIDATE PARAMS -- if @action is null OR @action not in ('create','drop','activate','deactivate', 'start_change_tracking', 'stop_change_tracking', 'start_background_updateindex', 'stop_background_updateindex', 'update_index', 'start_full', 'start_incremental', 'stop') OR (@action not in ('create') and (@ftcat is not null or @keyname is not null)) OR (@action in ('create') and (@ftcat is null or len(@ftcat) = 0 or @keyname is null or len(@keyname) = 0)) begin raiserror(15600,-1,-1,'sys.sp_fulltext_table') return 1 end -- DISALLOW USER TRANSACTION -- set implicit_transactions off if @@trancount > 0 begin raiserror(15002,-1,-1,'sys.sp_fulltext_table') return 1 end if @action = 'create' begin select @execstring = 'CREATE FULLTEXT INDEX ON ' + @newtabname +' KEY INDEX ' + quotename( @keyname, '[') + ' ON ' + quotename( @ftcat, '[') + ' WITH CHANGE_TRACKING OFF, NO POPULATION ' EXEC (@execstring) end if @action = 'drop' begin select @execstring = 'DROP FULLTEXT INDEX ON ' + @newtabname EXEC (@execstring) end if @action = 'activate' begin select @execstring = 'ALTER FULLTEXT INDEX ON ' + @newtabname +' ENABLE ' EXEC (@execstring) end if @action = 'deactivate' begin select @execstring = 'ALTER FULLTEXT INDEX ON ' + @newtabname +' DISABLE ' EXEC (@execstring) end if @action = 'start_change_tracking' begin select @execstring = 'ALTER FULLTEXT INDEX ON ' + @newtabname +' SET CHANGE_TRACKING MANUAL ' EXEC (@execstring) end if @action = 'stop_change_tracking' begin select @execstring = 'ALTER FULLTEXT INDEX ON ' + @newtabname +' SET CHANGE_TRACKING OFF ' EXEC (@execstring) end if @action = 'start_background_updateindex' begin select @execstring = 'ALTER FULLTEXT INDEX ON ' + @newtabname +' SET CHANGE_TRACKING AUTO ' EXEC (@execstring) end if @action = 'stop_background_updateindex' begin -- when table is not existing, we will call ALTER FULLTEXT to raise error for consistent error behavior. if object_id(@newtabname, 'local') is null OR ObjectProperty(object_id(@newtabname, 'local'), 'TableHasActiveFulltextIndex') = 0 OR ObjectProperty(object_id(@newtabname, 'local'), 'TableFullTextBackgroundUpdateIndexOn') != 0 begin select @execstring = 'ALTER FULLTEXT INDEX ON ' + @newtabname +' SET CHANGE_TRACKING MANUAL ' EXEC (@execstring) end end if @action = 'update_index' begin select @execstring = 'ALTER FULLTEXT INDEX ON ' + @newtabname +' START UPDATE POPULATION ' EXEC (@execstring) end if @action = 'start_full' begin select @execstring = 'ALTER FULLTEXT INDEX ON ' + @newtabname +' START FULL POPULATION ' EXEC (@execstring) end if @action = 'start_incremental' begin select @execstring = 'ALTER FULLTEXT INDEX ON ' + @newtabname +' START INCREMENTAL POPULATION ' EXEC (@execstring) end if @action = 'stop' begin select @execstring = 'ALTER FULLTEXT INDEX ON ' + @newtabname +' STOP POPULATION ' EXEC (@execstring) end -- SUCCESS -- return 0
No comments:
Post a Comment