2016-02-15 5 views
0

Мне нужно скопировать данные из таблицы в схему в другую таблицу в другой схеме. 2 таблицы имеют одинаковые столбцы. Я попробовалСкопировать данные из таблицы в схему в другую таблицу в другую схему

SET @Script = 'SELECT * FROM application_params.' + @tableName + ' INSERT INTO temp_application_params.' [email protected] 
Exec sp_executesql @Script 

Где @tablename - это переменная, содержащая имя таблицы. Имена таблиц одинаковы. Но эти инструкции не копируют данные, вторая таблица остается пустой. В чем проблема ?

+4

Как это работать даже ?, вы знаете, что правильный синтаксис будет 'INSERT INTO таблицы SELECT ... FROM other_table' – Lamak

+0

@Lamak: Я тоже попробовал этот путь, но это не работает – Karl

+1

Что значит 'не работает' означает здесь ?, запрос, который вы опубликовали, должен был дать вам ошибку – Lamak

ответ

2

Если целевая таблица существует:

INSERT INTO targetTable 
SELECT * FROM [sourceserver].[sourcedatabase].[dbo].[sourceTable] 

Если целевая таблица не существует:

select * into targetTable from [sourceserver].[sourcedatabase].[dbo].[sourceTable] 
+0

Это не сработает. Целевая таблица уже существует. –

+0

@SeanLange, пересмотренный – IgorM

0

Если вторая таблица существует

Set @script = 'insert into schema2.' + @tablename + ' select * from schema1.' + @tablename 

Если вторая таблица не есть

Set @script = 'select * into schema2.' + @tablename + ' from schema1.' + @tablename 

Тогда

Exec sp_executesql @script 
Смежные вопросы