2016-10-04 18 views
0

私はGreatPlainsというサーバーを持っていて、ローカルサーバーのレポートにINSERT INTO句を使用して新しいテーブル(まだ定義されていません)データベース。 GreatPlainsサーバーとメインプロダクションサーバー用にリンクサーバーが設定されています。SQL Server Management Studioでリンクサーバーを使用してINSERT INTO句を使用してテーブルを作成する方法

現在のクエリの簡易版:

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

私は、エラーを取得しています:私はあなたが余分なinsertを持って

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

答えて

3

2つのプレフィックスのクエリに2つのミス

1. INTO句のサポート、最大があります。あなたは、あなたのローカルサーバとテーブルでスクリプトを実行している場合だからあなたのクエリが

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

思う:

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

テーブルの場合すでに定義されていて、同じ順序で同じ列がある場合は、次の操作を実行できます。

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

である必要があり、既にデータベースに存在するSERVER NAME

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME 

2.Unwanted INSERT ketword

を含めることはできません、以下のスクリプトを使用してください。

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] 
関連する問題