Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
как в поле msrepl_tran_version таблицы dept разрешить записывать NULL или как их удалить?
18 авг 11, 11:52    [11138456]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
была попытка настроить репликацию неудачная. я её удалил а эти поля остались и надо что нибудь с ними сделать а то программа на них ругается
18 авг 11, 12:09    [11138623]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
select @@version что вернет?
18 авг 11, 12:27    [11138776]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2) вот что написал
18 авг 11, 12:34    [11138840]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
Glory
Member

Откуда:
Сообщений: 104751
sad1stik
я её удалил

Какой командой ?
18 авг 11, 12:34    [11138845]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
Glory,

стандартными средствами в EM
18 авг 11, 12:36    [11138861]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
Glory
Member

Откуда:
Сообщений: 104751
sp_removedbreplication
18 авг 11, 12:44    [11138956]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
Glory,

Procedure 'sp_removedbreplication' expects parameter '@dbname', which was not supplied.
18 авг 11, 12:52    [11139026]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
Glory
Member

Откуда:
Сообщений: 104751
sad1stik
Glory,

Procedure 'sp_removedbreplication' expects parameter '@dbname', which was not supplied.

Я даю средство, а не точный синтаксис для неизвестной базы
Неужели так трудно прочитать в хелпе про нужные параметры ?
Или понять текст ошибки ?
18 авг 11, 12:54    [11139041]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
Glory,

ну не программист я сори можно плиз полный синтаксис))
18 авг 11, 12:56    [11139061]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
sad1stik
Glory,

ну не программист я сори можно плиз полный синтаксис))
Нажмите уже кнопку f1 и прочитайте его. Или вы и не читатель в том числе?
18 авг 11, 12:57    [11139079]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
exec sp_removedbreplication @dbname = 'bp'
GO вот так правильно будет?
18 авг 11, 13:06    [11139153]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
но и это не помогло
18 авг 11, 13:07    [11139167]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
Evgen
Member

Откуда: Екатеринбург
Сообщений: 91
sad1stik,

declare cCursor cursor for 
SELECT table_name, column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE column_name like 'msrepl_tran_version' ORDER BY table_name
open cCursor
fetch next from cCursor into @tablename, @name

while @@FETCH_STATUS = 0
begin
	set @cmd='ALTER TABLE '+ @tablename + ' DROP COLUMN ' + @name
	exec (@cmd)
	print @cmd

	fetch next from cCursor into @tablename, @name
end
close cCursor
deallocate cCursor
18 авг 11, 14:43    [11139883]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
Evgen
Member

Откуда: Екатеринбург
Сообщений: 91
sad1stik,

но кроме этого от реплик еще куча мусора остается
18 авг 11, 14:44    [11139890]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
Evgen
Member

Откуда: Екатеринбург
Сообщений: 91
Evgen
sad1stik,

declare cCursor cursor for 
SELECT table_name, column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE column_name like 'msrepl_tran_version' ORDER BY table_name
open cCursor
fetch next from cCursor into @tablename, @name

while @@FETCH_STATUS = 0
begin
	set @cmd='ALTER TABLE '+ @tablename + ' DROP COLUMN ' + @name
	exec (@cmd)
	print @cmd

	fetch next from cCursor into @tablename, @name
end
close cCursor
deallocate cCursor

забыл скопировать объявление переменных. Вот так:
declare @cmd varchar(4000) 
declare @name sysname, @tablename sysname
declare cCursor cursor for 
SELECT table_name, column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE column_name like 'msrepl_tran_version' ORDER BY table_name
open cCursor
fetch next from cCursor into @tablename, @name

while @@FETCH_STATUS = 0
begin
	set @cmd='ALTER TABLE '+ @tablename + ' DROP COLUMN ' + @name
	exec (@cmd)
	print @cmd

	fetch next from cCursor into @tablename, @name
end
close cCursor
deallocate cCursor
18 авг 11, 14:46    [11139909]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
Evgen,

Server: Msg 137, Level 15, State 1, Line 4
Must declare the variable '@tablename'.
Server: Msg 137, Level 15, State 1, Line 8
Must declare the variable '@tablename'.
Server: Msg 137, Level 15, State 1, Line 9
Must declare the variable '@cmd'.
Server: Msg 137, Level 15, State 1, Line 10
Must declare the variable '@cmd'.
Server: Msg 137, Level 15, State 1, Line 12
Must declare the variable '@tablename'.
Вот что отвечает
18 авг 11, 14:48    [11139926]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
Evgen,

а теперь во такое выдаёт

Server: Msg 5074, Level 16, State 1, Line 1
The object 'DF__anket__msrepl_tr__3BE0B70B' is dependent on column 'msrepl_tran_version'.
Server: Msg 4922, Level 16, State 1, Line 1
ALTER TABLE DROP COLUMN msrepl_tran_version failed because one or more objects access this column.
19 авг 11, 05:57    [11143385]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
Evgen
Member

Откуда: Екатеринбург
Сообщений: 91
sad1stik,

я же грил что этим не обойдется. приведу полный скрипт очистки хвостов от транзакционной реплики с обновляемыми подписчиками, юзать на свой страх и риск. Нужно в двух местах заменить ИмяТвоейБазы на реальное имя базы.

sp_removedbreplication @dbname = 'ИмяТвоейБазы'
go


sp_configure "allow_updates", 1
reconfigure with override
go

use ИмяТвоейБазы
go


declare @cmd varchar(4000) 
declare @name sysname, @tablename sysname


declare cCursor CURSOR for
select name from sysobjects  where type='U' and name like '%onflict%' order by name
open cCursor
fetch next from cCursor into @name

print '*** удаление conflict table '
while @@FETCH_STATUS = 0
begin
	
	set @cmd='drop table [' + @name + ']'
	print '   ' + @cmd
	exec (@cmd)

	fetch next from cCursor into @name
end

close cCursor
deallocate cCursor


print '***** будем удалять триггеры'
declare cCursor CURSOR for
select name from sysobjects  where type='TR' and name like 'sp_MSsync_%' order by name
open cCursor
fetch next from cCursor into @name

while @@FETCH_STATUS = 0
begin
	SET @cmd = 'DROP TRIGGER ' + @name
	print '   ' + @cmd

	exec (@cmd)
	
	fetch next from cCursor into @name
end

close cCursor
deallocate cCursor


print ''
print '*** удаление хранимых процедур'
declare cCursor CURSOR for
select name from sysobjects  
	where type='P' 
		and (lower(left(name,9)) = 'sp_MScft_' 
			or lower(left(name,14)) = 'sp_MSsync_del_' 
			or lower(left(name,14)) = 'sp_MSsync_ins_' 
			or lower(left(name,14)) = 'sp_MSsync_upd_' 
		)
	order by name
open cCursor
fetch next from cCursor into @name

while @@FETCH_STATUS = 0
begin
	set @cmd='drop procedure ['+ @name + ']'
	print (@cmd)
	exec (@cmd)
  
	fetch next from cCursor into @name
end

close cCursor
deallocate cCursor

print ''
print '*** удаление вьюх'

declare cCursor CURSOR for
select name from sysobjects  where type='V' and lower(left(name,8)) = 'syncobj_' order by name
open cCursor
fetch next from cCursor into @name

while @@FETCH_STATUS = 0
begin
	set @cmd='drop view ['+ @name +']'
	print (@cmd)
	exec (@cmd)
  
	fetch next from cCursor into @name
end

close cCursor
deallocate cCursor

print ''
print '*** удаление констрейнтов'

declare cCursor cursor for 
SELECT tabl.name,constr.name
FROM sys.default_constraints as constr
	INNER JOIN sys.objects as tabl ON constr.parent_object_id = tabl.object_id
WHERE constr.name like '%msrepl%'
open cCursor
fetch next from cCursor into @tablename, @name

while @@FETCH_STATUS = 0
begin
	set @cmd='alter table '+ @tablename + ' drop constraint ' + @name
	exec (@cmd)
	print @cmd

	fetch next from cCursor into @tablename, @name
end
close cCursor
deallocate cCursor

print ''
print '*** удаление столбцов с гуидами'
declare cCursor cursor for 
SELECT table_name, column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE column_name like 'msrepl_tran_version' ORDER BY table_name
open cCursor
fetch next from cCursor into @tablename, @name

while @@FETCH_STATUS = 0
begin
	set @cmd='ALTER TABLE '+ @tablename + ' DROP COLUMN ' + @name
	exec (@cmd)
	print @cmd

	fetch next from cCursor into @tablename, @name
end
close cCursor
deallocate cCursor
19 авг 11, 06:24    [11143388]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
Evgen,

все с начало шло а потом


*** удаление констрейнтов
Server: Msg 208, Level 16, State 1, Line 97
Invalid object name 'sys.default_constraints'.
Server: Msg 208, Level 16, State 1, Line 97
Invalid object name 'sys.objects'.

s
19 авг 11, 06:52    [11143404]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
Evgen
Member

Откуда: Екатеринбург
Сообщений: 91
sad1stik,

еще попытка
sp_removedbreplication @dbname = 'ИмяТвоейБазы'
go


sp_configure "allow_updates", 1
reconfigure with override
go

use ИмяТвоейБазы
go


declare @cmd varchar(4000) 
declare @name sysname, @tablename sysname


declare cCursor CURSOR for
select name from sysobjects  where type='U' and name like '%onflict%' order by name
open cCursor
fetch next from cCursor into @name

print '*** удаление conflict table '
while @@FETCH_STATUS = 0
begin
	
	set @cmd='drop table [' + @name + ']'
	print '   ' + @cmd
	exec (@cmd)

	fetch next from cCursor into @name
end

close cCursor
deallocate cCursor


print '***** будем удалять триггеры'
declare cCursor CURSOR for
select name from sysobjects  where type='TR' and name like 'sp_MSsync_%' order by name
open cCursor
fetch next from cCursor into @name

while @@FETCH_STATUS = 0
begin
	SET @cmd = 'DROP TRIGGER ' + @name
	print '   ' + @cmd

	exec (@cmd)
	
	fetch next from cCursor into @name
end

close cCursor
deallocate cCursor


print ''
print '*** удаление хранимых процедур'
declare cCursor CURSOR for
select name from sysobjects  
	where type='P' 
		and (lower(left(name,9)) = 'sp_MScft_' 
			or lower(left(name,14)) = 'sp_MSsync_del_' 
			or lower(left(name,14)) = 'sp_MSsync_ins_' 
			or lower(left(name,14)) = 'sp_MSsync_upd_' 
		)
	order by name
open cCursor
fetch next from cCursor into @name

while @@FETCH_STATUS = 0
begin
	set @cmd='drop procedure ['+ @name + ']'
	print (@cmd)
	exec (@cmd)
  
	fetch next from cCursor into @name
end

close cCursor
deallocate cCursor

print ''
print '*** удаление вьюх'

declare cCursor CURSOR for
select name from sysobjects  where type='V' and lower(left(name,8)) = 'syncobj_' order by name
open cCursor
fetch next from cCursor into @name

while @@FETCH_STATUS = 0
begin
	set @cmd='drop view ['+ @name +']'
	print (@cmd)
	exec (@cmd)
  
	fetch next from cCursor into @name
end

close cCursor
deallocate cCursor

print ''
print '*** удаление констрейнтов'

declare cCursor cursor for 
SELECT tabl.name, constr.name
FROM sysobjects as constr
	INNER JOIN sysobjects as tabl ON constr.parent_obj = tabl.id
WHERE constr.name like '%msrepl%'
	and constr.type = 'D'
open cCursor
fetch next from cCursor into @tablename, @name

while @@FETCH_STATUS = 0
begin
	set @cmd='alter table '+ @tablename + ' drop constraint ' + @name
	exec (@cmd)
	print @cmd

	fetch next from cCursor into @tablename, @name
end
close cCursor
deallocate cCursor

print ''
print '*** удаление столбцов с гуидами'
declare cCursor cursor for 
SELECT table_name, column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE column_name like 'msrepl_tran_version' ORDER BY table_name
open cCursor
fetch next from cCursor into @tablename, @name

while @@FETCH_STATUS = 0
begin
	set @cmd='ALTER TABLE '+ @tablename + ' DROP COLUMN ' + @name
	exec (@cmd)
	print @cmd

	fetch next from cCursor into @tablename, @name
end
close cCursor
deallocate cCursor
19 авг 11, 07:40    [11143447]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
Evgen,

а теперь вот это

*** удаление столбцов с гуидами
ALTER TABLE anket DROP COLUMN msrepl_tran_version
Server: Msg 5074, Level 16, State 1, Line 1
The object 'DF__BarsEvent__msrep__31632898' is dependent on column 'msrepl_tran_version'.
Server: Msg 4922, Level 16, State 1, Line 1
ALTER TABLE DROP COLUMN msrepl_tran_version failed because one or more objects access this column.
19 авг 11, 07:50    [11143459]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
Evgen
Member

Откуда: Екатеринбург
Сообщений: 91
sad1stik,

замените
WHERE constr.name like '%msrepl%'
на
WHERE constr.name like '%msrep%'
19 авг 11, 08:07    [11143482]     Ответить | Цитировать Сообщить модератору
 Re: репликация  [new]
sad1stik
Member

Откуда:
Сообщений: 34
Evgen,

спасибо большое за всё скрипт прошёл но проблема осталась(((
19 авг 11, 09:26    [11143708]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить