Как вручную переместить строки из одной базы данных в другую? - PullRequest
1 голос
/ 05 марта 2012

У меня две базы данных на одном сервере. Одна база данных новее другой, и ее схема была немного изменена. Я хочу перенести данные из таблицы в старой базе данных в таблицу в новой базе данных, но мне нужен полный контроль над процессом, чтобы я мог сформировать старые данные в соответствии с новой схемой.

[NewDB].[dbo].[Aliases]

[OldDB].[Terminal].[Alias]

Я еще не очень разбираюсь в SQL. Есть ли способ, которым я могу перебрать все записи в старой таблице, а затем на каждой итерации цикла создать собственный оператор вставки для новой таблицы?

Ответы [ 4 ]

3 голосов
/ 06 марта 2012

Попробуйте вставить оператор SELECT.

INSERT INTO [NewDB].[dbo].[Aliases] 
SELECT columns
FROM [OldDB].[Terminal].[Alias]

http://msdn.microsoft.com/en-us/library/ms174335(v=sql.100).aspx - секция производной таблицы http://msdn.microsoft.com/en-us/library/ms189499(v=sql.100).aspx

2 голосов
/ 06 марта 2012

В зависимости от размера данных, которые вы хотите передать, вы можете рассмотреть возможность использования BULK INSERT: http://msdn.microsoft.com/en-us/library/ms188365.aspx

2 голосов
/ 06 марта 2012

Сделайте это так же, как если бы обе таблицы находились в одной базе данных. Просто полностью уточняйте названия таблиц. Пример:

INSERT INTO [NewDB].[dbo].[Aliases] (col1, col2, col3)
    SELECT LEFT(col1,3), col2, col3 FROM [OldDB].[Terminal].[Alias]
0 голосов
/ 06 марта 2012
INSERT INTO NEWDB..TABLENAME( *fieldlist* )
SELECT *fieldlist* FROM OLDDB..TABLENAME
...