2015-10-28 3 views
0

Я использую сервер Microsoft SQL. следующий код работает при запуске из QUERY:Microsoft SQL server: скопировать таблицу со связанного сервера в текущую базу данных с помощью хранимой процедуры

SELECT * 
INTO mydatabase.dbo.atable 
FROM linkedserver.sandbox.dbo.atable 

но не если она вставлена ​​в хранимую процедуру:

SET ANSI_NULLS ON GO 
SET QUOTED_IDENTIFIER ON GO 

ALTER PROCEDURE dataMigration 
AS BEGIN 
-- SET NOCOUNT ON added to prevent extra result sets from 
-- interfering with SELECT statements.  

SET NOCOUNT ON; 

-- Insert statements for procedure here  
SELECT *  
INTO mydatabase.dbo.atable 
FROM linkedserver.sandbox.dbo.atable 

END 
GO 

Command (s) завершается успешно, но ни одна таблица не создается в MyDatabase. Извините за тривиальный вопрос. Я посмотрел на подобные проблемы, но я не нашел случая, подобного моему.

Благодарим за помощь.

+0

Это нормальная таблица или локальная температура стол' # table1'? – lad2025

+0

может быть или не существовать в mydatabase. После копирования из linkedserver.sandbox.dbo.atable будет использоваться для заполнения других таблиц в mydatabase. – user1536396

+0

Попробуйте: 'SELECT * INTO mydatabase.dbo.atable FROM OPENQUERY ([linkedserver], 'SELECT * FROM sandbox.dbo.atable')' – lad2025

ответ

2

Вам необходимо выполнить хранимую процедуру после запуска кода для ее изменения.

попробуйте запустить:

exec dataMigration 
+0

Я чувствую себя глупо! Вот и все :) – user1536396

+0

Случается к лучшему из нас! Можете ли вы отметить это как принятый ответ? Благодаря! –

+1

Конечно, спасибо Филип – user1536396

1

правой кнопкой мыши Option Image процедуры сохранения и нажмите кнопку «Выполнить процедуру магазин»