2016-10-04 5 views
0

У меня есть сервер с именем GreatPlains, и я хотел бы создать новую таблицу (еще не определенную) с помощью предложения INSERT INTO на отчет о локальном сервере база данных. У нас есть связанный сервер, настроенный для сервера GreatPlains и нашего основного производственного сервера.Как создать таблицу с использованием предложения INSERT INTO с помощью связанных серверов в SQL Server Management Studio

Упрощенная версия текущего запроса:

SELECT * 
INTO [local].[Reporting].[dbo].[NewTable] 
FROM [linked].[Main].[dbo].[Orders] 

Я также получаю сообщение об ошибке:

The object name 'local.Reporting.dbo.NewTable' contains more than the maximum number of prefixes. The maximum is 2.

ответ

3

Есть две ошибки в запросе

1. INTO максимальная поддержка пункт 2 префиксов. Вы не можете включать SERVER NAME

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME 

2.Unwanted INSERT ketword

Таким образом, ваш запрос должен быть

SELECT * 
INTO [Reporting].[dbo].[NewTable] 
FROM [linked].[Main].[dbo].[Orders]; 
2

Я думаю, у вас есть дополнительные insert:

SELECT * 
INTO [local].[Reporting].[dbo].[NewTable] 
FROM [linked].[Main].[dbo].[Orders]; 

Если таблица уже определен и имеет одинаковые столбцы в том же порядке, то вы можете сделать:

INSERT INTO [local].[Reporting].[dbo].[NewTable] 
    SELECT * 
    FROM [linked].[Main].[dbo].[Orders]; 
0

Если вы запускаете скрипт в локальном сервере и таблица уже существует в базе данных, Используйте приведенный ниже сценарий.

USE [Reporting] 
GO 

INSERT INTO [dbo].[NewTable] 
SELECT * 
FROM [linked].[Main].[dbo].[Orders] 

Если у вас нет таблицы в вашей базе данных, используйте приведенный ниже сценарий.

USE [Reporting] 
GO 

SELECT * 
    INTO dbo.[NewTable] 
FROM [linked].[Main].[dbo].[Orders]