Replikation entfernen (SQL): Unterschied zwischen den Versionen

Aus InfoAgent Dokumentation
Wechseln zu: Navigation, Suche
Zeile 10: Zeile 10:
  
  
===== Entfernen aller Trigger der Replikation =====
+
=== Entfernen aller Trigger der Replikation ===
  
 
<source lang="tsql">
 
<source lang="tsql">
Zeile 37: Zeile 37:
  
  
===== Entfernen aller Stored Procedures der Replikation =====
+
=== Entfernen aller Stored Procedures der Replikation ===
  
 
<source lang="tsql">
 
<source lang="tsql">
Zeile 58: Zeile 58:
  
  
===== Entfernen aller Sichten der Replikation =====
+
=== Entfernen aller Sichten der Replikation ===
 
<source lang="tsql">
 
<source lang="tsql">
 
   declare @trigname  nvarchar(300)  
 
   declare @trigname  nvarchar(300)  
Zeile 77: Zeile 77:
 
</source>
 
</source>
  
===== Entfernen des Merkmals Mergepublication der Replikation =====
+
=== Entfernen des Merkmals Mergepublication der Replikation ===
  
 
==== Voraussetzung: im SQL-Server Direktänderungen erlauben ====
 
==== Voraussetzung: im SQL-Server Direktänderungen erlauben ====
Zeile 99: Zeile 99:
 
   GO
 
   GO
 
</source>
 
</source>
 +
 +
 +
[[Kategorie:Replikation]]

Version vom 14. Mai 2007, 14:01 Uhr

Replikation nach DB-Restore entfernen

Einleitung

Eine replizierte Datenbank wurde durch Rücksicherung von BACKUP-File oder MDF/LDF wiederhergestellt. Bei der Sicherung wurden aber die Systemdatenbanken nicht mitgesichert. Folglich muss das Datenbank-Schema von den Replikationsinhalten entfernt werden.

Gehen Sie dazu wie folgt vor...

SQL-Befehle nur im Microsoft Enterprise Manager bzw. im Microsoft SQL Management Studio



Entfernen aller Trigger der Replikation

  declare @trigname  nvarchar(300) 
  declare @sql nvarchar(300) 
  DECLARE curRS CURSOR FOR  
  select name from sysobjects where xtype = 'tr' 
  and (
    name like 'ins_%' or
    name like 'upd_%' or
    name like 'del_%' 
  )
  order by name
  Open curRS  
  FETCH NEXT FROM curRS INTO @trigname
  WHILE (@@FETCH_Status = 0 ) 
  begin  
    set @sql = 'drop trigger ' + @trigname
    execute sp_executesql @sql
    FETCH NEXT FROM curRS INTO @trigname
  END 
  CLOSE curRS  
  DEALLOCATE curRS


Entfernen aller Stored Procedures der Replikation

  declare @trigname  nvarchar(300) 
  declare @sql nvarchar(300) 
  DECLARE curRS CURSOR FOR  
  select name from sysobjects where (name like 'sp_%' or name like 'sel_%') and name <> 'sparten' and name <> 'selkennzeichen' order by name
  Open curRS  
  FETCH NEXT FROM curRS INTO @trigname
  WHILE (@@FETCH_Status = 0 ) 
  begin  
    set @sql = 'drop procedure ' + @trigname
    execute sp_executesql @sql
    FETCH NEXT FROM curRS INTO @trigname
  END 
  CLOSE curRS  
  DEALLOCATE curRS


Entfernen aller Sichten der Replikation

  declare @trigname  nvarchar(300) 
  declare @sql nvarchar(300) 
  DECLARE curRS CURSOR FOR  
  select name from sysobjects where name like 'ctsv_%' or name like 'tsvw_%'
  order by name
  Open curRS  
  FETCH NEXT FROM curRS INTO @trigname
  WHILE (@@FETCH_Status = 0 ) 
  begin  
    set @sql = 'drop view ' + @trigname
    execute sp_executesql @sql
    FETCH NEXT FROM curRS INTO @trigname
  END 
  CLOSE curRS  
  DEALLOCATE curRS

Entfernen des Merkmals Mergepublication der Replikation

Voraussetzung: im SQL-Server Direktänderungen erlauben

  EXEC master.dbo.sp_configure N'allow updates', N'1'
  GO
  RECONFIGURE WITH OVERRIDE
  GO

Der eigentliche Update-Befehl

  update sysobjects set replinfo = 0 where xtype = 'U' and replinfo = 128

Voraussetzung zurücksetzen

  EXEC master.dbo.sp_configure N'allow updates', N'0'
  GO
  RECONFIGURE WITH OVERRIDE
  GO