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_MSset_dynamic_filter_options(nvarchar @publication, bit @dont_raise_error)
MetaData:
create procedure sys.sp_MSset_dynamic_filter_options @publication sysname, @dynamic_filters bit = NULL OUTPUT, @dont_raise_error bit = NULL as declare @show_errors bit , @retcode int , @can_use_partition_groups bit , @use_partition_groups smallint , @dynamic_filters_function_list nvarchar(500) , @has_dynamic_filters bit , @validate_subscriber_info nvarchar(500) , @pubid uniqueidentifier , @compatlevel int , @old_has_dynamic_filters bit exec @retcode = sys.sp_MSreplcheck_publish if @@ERROR <> 0 or @retcode <> 0 return(1) select @pubid = pubid , @use_partition_groups = use_partition_groups , @compatlevel = backward_comp_level , @old_has_dynamic_filters = dynamic_filters from dbo.sysmergepublications where name = @publication and UPPER(publisher)=UPPER(publishingservername()) and publisher_db=db_name() if @pubid is NULL begin raiserror (20026, 11, -1, @publication) return (1) end -- If dbo has not specified whether this publication should use partition groups or not, -- then we should use it if possible. Determine if any of the restrictions of partition -- ids are violated. If yes, then set use_partition_groups to 0, else set it to 2. -- -- If dbo has specified that partition groups should be used, make sure that the publication -- does not violate any restrictions of partition groups. If it does, raise an error. exec @retcode = sys.sp_MScheck_dynamic_filters @publication = @publication , @can_use_partition_groups = @can_use_partition_groups output , @has_dynamic_filters = @has_dynamic_filters output , @dynamic_filters_function_list = @dynamic_filters_function_list output , @validate_subscriber_info = @validate_subscriber_info output , @uses_host_name = NULL , @uses_suser_sname = NULL , @dont_raise_error = @dont_raise_error if @@error <> 0 or @retcode <> 0 return 1 -- dynamic filters setting cannot change for an active publication that has valid bcp schema changes -- since the schema types can either be dynamic or static whenever a publication changes from a static -- to a dynamic publication or vice versa we shoudl have deleted the bcp schema changes from sysmergepublications -- the following is to just check that this was done. This error can also happen after upgrade if the -- dynamic_filters property was incorrectly set in shiloh. The code path in addmerge or changemerge article -- should be settig dont_raise_error to true. Also these code paths should have already taken care of deleting -- the bcp schema changes from sysmergeschemachange. if ((@old_has_dynamic_filters = 0 and @has_dynamic_filters = 1) or (@old_has_dynamic_filters = 1 and @has_dynamic_filters = 0)) and exists (select 1 from dbo.sysmergeschemachange where pubid=@pubid and schematype in (3,4,131,132)) -- native and character bcp schema types and (@dont_raise_error is NULL or @dont_raise_error = 0) begin raiserror (20711, 11, -1, @publication) return (1) end update dbo.sysmergepublications set dynamic_filters = @has_dynamic_filters, validate_subscriber_info = case when validate_subscriber_info = N'' and @compatlevel >= 90 and @validate_subscriber_info is not null then @validate_subscriber_info else validate_subscriber_info end where pubid = @pubid select @dynamic_filters = @has_dynamic_filters if @can_use_partition_groups = 1 set @use_partition_groups = 2 else if @use_partition_groups is NULL begin set @use_partition_groups = 0 set @dynamic_filters_function_list = NULL end update dbo.sysmergepublications set use_partition_groups = @use_partition_groups, dynamic_filters_function_list = @dynamic_filters_function_list, keep_before_values = case when backward_comp_level >= 90 then 0 else keep_before_values end where pubid = @pubid and (use_partition_groups is null or use_partition_groups = 2) update dbo.sysmergepublications set dynamic_filters_function_list = @dynamic_filters_function_list where pubid = @pubid and (use_partition_groups = 0) if @dynamic_filters_function_list is not null update dbo.sysmergepublications set dynamic_filters_function_list = @dynamic_filters_function_list where pubid = @pubid and (use_partition_groups = 1) -- Only if the caller is interested in errors, set the retcode properly - sp_addmergearticle is not interested in these errors because it expects the snapshot to set the use_partition_groups properly -- if (@dont_raise_error is NULL or @dont_raise_error = 0) begin if @can_use_partition_groups = 0 and @use_partition_groups = 2 begin -- For this case, sp_MScheck_dynamic_filters would have already raised an error. return 1 end end return 0
No comments:
Post a Comment