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

Откуда: glubinka
Сообщений: 4256
может плохо искал. Есть куча установок базы по всему миру.
для того чтобы сделать двунаправленную репликацию, треба всем identity проставить not for replication.

попробовал в progfiler посмотреть что он там делать - 2500 строк для одного движения. Понятно что там 95% мусор, но все же может есть внятный алгоритм как это сделать ?
17 янв 06, 01:29    [2260117]     Ответить | Цитировать Сообщить модератору
 Re: set not for replication  [new]
Glory
Member

Откуда:
Сообщений: 104760
А кнопка Script chаnges в дизайне таблице при установке not for replication разве не поможет ?
17 янв 06, 01:40    [2260122]     Ответить | Цитировать Сообщить модератору
 Re: set not for replication  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10753
Блог
Может это сгодиться:

sp configure 'allow updates', 1
GO
reconfigure with override
GO
update syscolumns set colstat = colstat | 0x0008 where colstat & 
0x0001 <> 0 and colstat & 0x0008 = 0 and id=object id('имя Вашей таблицы') 
GO
sp configure 'allow updates', 0
17 янв 06, 16:09    [2262517]     Ответить | Цитировать Сообщить модератору
 Re: set not for replication  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
спасибо добрый человек все работает, а вот что делать с MSSQL2005 - как там разрешить менять менять системные таблицы ?


sp configure 'allow_updates', 1
reconfigure with override
GO
DECLARE @tbl_name SYSNAME
DECLARE cur CURSOR FOR
	SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS 
		WHERE columnproperty(OBJECT_ID(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1
		AND TABLE_NAME IN (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE')
		AND TABLE_NAME NOT IN ('dtproperties')
	ORDER BY TABLE_NAME
OPEN cur
FETCH NEXT FROM cur INTO @tbl_name
WHILE @@fetch_status=0 
BEGIN
		UPDATE syscolumns SET colstat = colstat | 0x0008 WHERE colstat & 
			0x0001 <> 0 and colstat & 0x0008 = 0 and id=object id( @tbl_name ) 
		
FETCH NEXT FROM cur INTO @tbl_name
END
CLOSE cur
DEALLOCATE cur
GO
sp configure 'allow updates', 0
20 янв 06, 22:43    [2275055]     Ответить | Цитировать Сообщить модератору
 Re: set not for replication  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
up
23 янв 06, 17:26    [2279252]     Ответить | Цитировать Сообщить модератору
 Re: set not for replication  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
ответьте пожалyйста рубщику мяса что делать с MS2005.

Configuration option 'allow updates' changed from 0 to 1. Run the RECONFIGURE statement to install.
Msg 259, Level 16, State 1, Line 13
Ad hoc updates to system catalogs are not allowed.
Configuration option 'allow updates' changed from 1 to 0. Run the RECONFIGURE statement to install.


как написать скрипт для апдейта базы. а базы у кастомеров очень большие могут быть .
27 янв 06, 19:46    [2296528]     Ответить | Цитировать Сообщить модератору
 Re: set not for replication  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
up
28 янв 06, 01:33    [2297101]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить