create procedure sys.sp_MScheck_dynamic_filtering_information (
@pubid uniqueidentifier,
@dynamic_filter_hostname sysname,
@dynamic_filter_login sysname
)
AS
begin
declare @uses_host_name bit
declare @uses_suser_sname bit
declare @retcode int
exec @retcode = sys.sp_MSget_dynamic_filtering_information
@pubid = @pubid,
@uses_host_name = @uses_host_name OUTPUT,
@uses_suser_sname = @uses_suser_sname OUTPUT
if @@error <> 0 or @retcode <> 0
begin
return 1
end
-- if the publication does not use suser_sname for filtering and the user has specified
-- a value for suser_sname raise an error.
if @uses_suser_sname = 0 and @dynamic_filter_login is not NULL
begin
raiserror(20673, 16, -1)
return (1)
end
-- if the publication does not use host_name for filtering and the user has specified
-- a value for host_name raise an error.
if @uses_host_name = 0 and @dynamic_filter_hostname is not NULL
begin
raiserror(20672, 16, -1)
return (1)
end
-- if the publication uses suser_sname for filtering and the user has not specified
-- a value for suser_sname raise an error.
if @uses_suser_sname = 1 and @dynamic_filter_login is NULL
begin
raiserror(20699, 16, -1)
return (1)
end
-- if the publication uses host_name for filtering and the user has not specified
-- a value for host_name raise an error.
if @uses_host_name = 1 and @dynamic_filter_hostname is NULL
begin
raiserror(20698, 16, -1)
return (1)
end
return 0
end