Мне нужно объединить 2 БД:
1 - исходная БД.К этой БД были добавлены некоторые таблицы, а некоторые столбцы в другой были изменены - при преобразовании в «БД 2».Эта БД ("1") была обработана, пока были внесены изменения - и мне нужно скопировать эти данные в новую структуру БД.
2 - это структура БД назначения.Мне нужно импортировать все старые + новые данные из DB1 в нее.
Я, конечно, хочу сделать это «умным» способом, а не с помощью мастеракакой-то.
Я собираюсь включить хранимую процедуру, которая получает имя таблицы и объединяет его во вложенном цикле.До сих пор не написал.
Я должен использовать экземпляр Sql Server 2000 (8.0).
Это моя идея, как правило,:
---SET THE ORIGIN AND DESTINATION DBs---
DECLARE @DBorigin varchar(50)
DECLARE @DBdest varchar(50)
declare testd cursor
SET @DBdest = 'DB1'
SET @DBorigin = 'DB2'
-----------------------------------------
DECLARE @DBname varchar(50)
DECLARE OrgDestTables CURSOR FOR
SELECT name
FROM MASTER.dbo.sysdatabases
WHERE NAME = @DBorigin OR NAME = @DBdest
OPEN OrgDestTables
FETCH NEXT FROM OrgDestTables INTO @DBname
WHILE (@@Fetch_Status = 0)
BEGIN
Print @DBname --(just for control needs)
DECLARE @SelectTablesCmd varchar(70)
/* --THIS SECTION DO NOT WORK
DECLARE @Cursor1 varchar(8000)
SET @Cursor1 =
'DECLARE testd CURSOR FOR
SELECT name FROM ' + @DBname + '.dbo.sysobjects WHERE Xtype = ''U'''
print (@Cursor1)
EXEC (@Cursor1)
*/
/* --THIS WAS THE ORIGINAL TRAIL WHILE I WAS STILL NOT AWARE OF THE FACT
--THAT I CANT USE THE CURSOR VARIABLE FOR A NESTED ONE
--INCLUDED THIS FOR U TO UNDERSTAND MY DESIRE
OPEN OrgDestTables
FETCH NEXT FROM Table1 INTO @DB1Tables
WHILE (@@Fetch_Status = 0)
BEGIN
Print @DB1Tables
FETCH NEXT FROM Table1 INTO @DBname
END
*/
FETCH NEXT FROM OrgDestTables INTO @DBname
END
Close OrgDestTables
Deallocate OrgDestTables
Заранее спасибо!