|
|
|
Перекачка данных - способы.
|
|||
|---|---|---|---|
|
#18+
Нужно перекачать данные из одной базы в другую, 100 таблиц. Структуры разные. С DTS-ом получается геморно, и приходится много раз повторять одно и то же. Причем из-за связей все таблицы сразу перекачать не получается. Возникла идея снять (disable?) все связи, спокойно перекачать всё через DTS (как сохранить скрипт?), потом активизировать связи. Ну или удалить связи, а потом опять их создать (опять нужен скрипт). Как это можно сделать наиболее быстро и корректно? Как деактивизировать все связи в базе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2002, 16:13:03 |
|
||
|
Перекачка данных - способы.
|
|||
|---|---|---|---|
|
#18+
> Как деактивизировать все связи в базе? вот такая сп : 1й параметр - имя таблицы. 2й - 1=включить, 0=выключить все referential constraints для данной таблицы. 3й - если 0=сообщать о проделанной работе CREATE PROCEDURE sp_CheckAllFK( @TableName sysname, @Check bit = 1, @NoMsgs bit = 1) AS set NOCOUNT on declare @TABLE_OWNER sysname, @TABLE_NAME sysname, @COLUMN_NAME sysname, @NAME sysname, @text varchar(2000) create table #fkeys( PKTABLE_QUALIFIER sysname, PKTABLE_OWNER sysname, PKTABLE_NAME sysname, PKCOLUMN_NAME sysname, FKTABLE_QUALIFIER sysname, FKTABLE_OWNER sysname, FKTABLE_NAME sysname, FKCOLUMN_NAME sysname, KEY_SEQ sysname, UPDATE_RULE sysname, DELETE_RULE sysname, FK_NAME sysname, PK_NAME sysname, DEFERRABILITY sysname ) INSERT #fkeys exec sp_fkeys @TableName if (@@ROWCOUNT = 0) RETURN DECLARE fks scroll cursor for select FKTABLE_OWNER, FKTABLE_NAME , FKCOLUMN_NAME, FK_NAME from #fkeys OPEN fks FETCH next from fks into @TABLE_OWNER , @TABLE_NAME , @COLUMN_NAME, @NAME WHILE (@@FETCH_STATUS >=0) BEGIN if @Check = 1 set @text='ALTER TABLE [' + rtrim(@TABLE_OWNER) + '].[' + rtrim(@TABLE_NAME) +'] CHECK CONSTRAINT [' + rtrim(@NAME) +']' else set @text='ALTER TABLE [' + rtrim(@TABLE_OWNER) + '].[' + rtrim(@TABLE_NAME) +'] NOCHECK CONSTRAINT [' + rtrim(@NAME) +']' exec (@text) if @NoMsgs=0 print 'Constraint '+rtrim(@NAME)+' changed' FETCH next from fks into @TABLE_OWNER , @TABLE_NAME , @COLUMN_NAME, @NAME END CLOSE fks DEALLOCATE fks drop table #fkeys GO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2002, 16:21:39 |
|
||
|
Перекачка данных - способы.
|
|||
|---|---|---|---|
|
#18+
Ок, спасибо :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2002, 17:16:02 |
|
||
|
Перекачка данных - способы.
|
|||
|---|---|---|---|
|
#18+
Какой способ перекачки данных из базы в базу с отличающейся структурой все-таки, наиболее корректный? Не поплывут ли связи после того как их отключить/включить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2002, 15:05:15 |
|
||
|
Перекачка данных - способы.
|
|||
|---|---|---|---|
|
#18+
Ну если ты только ты один будешь работать с БД, то связи не поплывут, а если нет, то ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2002, 15:29:27 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32050764&tid=1820319]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 385ms |

| 0 / 0 |
