fensterbauer
Goto Top

SQL Replikation aus DB entfernen

Hallo Leute,

habe hier eine SQL 2008 DB welche zwischen 2 Servern repliziert wird.
Für Testzwecke habe ich eine Kopie diese DB auf einem anderen SQL Server gebunden. Wie bekomme ich die Replikations Informationen aus der Kopie DB heraus ?


Viele Grüße

Content-ID: 183958

Url: https://administrator.de/forum/sql-replikation-aus-db-entfernen-183958.html

Ausgedruckt am: 20.12.2024 um 14:12 Uhr

fensterbauer
fensterbauer 25.04.2012 um 14:07:29 Uhr
Goto Top
Habe ne einfache Lösung gefunden :

Einfach mit der SQL eigenen Sicherung ein Backup der betroffenen DB machen.
Anschließend DB löschen und einen Restore der zuvor gesicherten DB durchführen. Dabei werden die z.B. rowguid nicht wieder hergestellt (welche die Replikation verwendet).

Alternativ geht es auch mit 3 Scripten welche nacheinander ausgeführt werden (ohne Gewähr !!) :
Das erste löscht die Indizes, das 2. Die Defaultwerte und das 3. Die komplette Spalte rowguid .. soweit die Theorie face-wink


select 'drop index ' + sysobjects.name + '.' + sysindexes.name from
sysindexes
inner join sysobjects
on sysindexes.id = sysobjects.id
where objectproperty(object_id(sysobjects.name),'IsMSShipped') = 0
and sysindexes.indid > 0 and sysindexes.indid < 255 and (sysindexes.status &
64)=0
and index_col(sysobjects.name, sysindexes.indid, 1) = 'rowguid'
order by sysindexes.indid

select 'alter table ' + b.name + ' drop constraint ' + a.name from
sysobjects a
inner join syscolumns on syscolumns.id = a.parent_obj
inner join sysobjects b on syscolumns.id = b.id
where syscolumns.name = 'rowguid'
and objectproperty(object_id(b.name),'IsMSShipped') = 0
and a.xtype = 'D'

select 'alter table ' + sysobjects.name + ' drop column ''rowguid'' ' from
syscolumns
inner join sysobjects on syscolumns.id = sysobjects.id
where syscolumns.name = 'rowguid'
and objectproperty(object_id(sysobjects.name),'IsMSShipped') = 0