I have a problem with replicatin schema changes via ALTER TRIGGER.
Wondering why they are transferred correctly, but not executed I found
the problem in the exists clause which preceeds the statement.
Here is the excerpt from the sysmergeschemachange of the subscriber:
if object_id(N'[Trigger_Karteikarten_Ereignisfelder_Update_Delete]') is not
null
exec ('ALTER TRIGGER
[Karteikarten].[Trigger_Karteikarten_Ereignisfelder_Update_Delete] on
[Karteikarten].[Ereignisfelder]
AFTER UPDATE, DELETE NOT FOR REPLICATION
AS BEGIN ...')
As You see the trigger is located on a table that resides in schema of
the owner "Karteikarten". While the owner is not prefixed in the if-clause
the statement never gets executed.
Does anybody knows a hotfix while I guess the error must reside inside the
[sys].[sp_MSmerge_ddldispatcher] or deeper.
Regards,
Rolf
Rolf - 11 Aug 2008 16:42 GMT
Nobody answering here - not any MVP ? Is this reported as a bug ?
Where can I report bugs in MS software ?
Rolf - 27 Aug 2008 15:44 GMT
Hoho,
found the thing - but I cannot change system SPs....
--select @temp_ddlcmds = N'if object_id(N'''
+sys.fn_replreplacesinglequote(quotename (object_name(@objid)))+ N''') is not
null exec('''
-- +
sys.fn_replreplacesinglequote('ALTER TRIGGER '
-- + @qual_object_name + N'
on '
-- + @qual_dest_object2 + N' '
-- + @pass_through_scripts )+
N''')'
select @temp_ddlcmds = N'if object_id(N''' +
@qual_object_name + N''') is not null exec('''
+
sys.fn_replreplacesinglequote('ALTER TRIGGER '
+ @qual_object_name + N' on '
+ @qual_dest_object2 + N' '
+ @pass_through_scripts )+
N''')'