1

前の質問 - Copy data from one column into another columnで述べたように、データ別名 ETL をある SQL サーバーから別の SQL サーバーに移動しようとしました。現在、クエリを実行しようとするとエラーが発生します。

クエリ -

INSERT INTO [Target_server].[Target_DB1].[dbo].[Target_Table1](Target_Column1)
SELECT Source_Column222
FROM [Source_server].[Source_DB1].[dbo].[Source_Table1]
WHERE Source_Column1 = 'ID7162'

エラー -

OLE DB provider "SQLNCLI" for linked server "MYLINKEDSERVER" returned message "Unspecified error".
OLE DB provider "SQLNCLI" for linked server "MYLINKEDSERVER" returned message "The stored procedure required to complete this operation could not be found on the server. Please contact your system administrator.".
Msg 7311, Level 16, State 2, Line 1
Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI" for linked server "MYLINKEDSERVER". The provider supports the interface, but returns a failure code when it is used.
4

2 に答える 2

0

単純な選択が機能しないと書いた場合、問題はリンクサーバーのセキュリティ構成と、ユーザーがそこで受け取るアクセス許可にあります。

このうち、クエリを実行するときに、ソースとターゲットの両方の部分にサーバー名と DB 名を指定する必要はありません。ターゲット サーバーとターゲット データベースでクエリを実行するだけです。この場合、クエリの代わりに

INSERT INTO [Target_server].[Target_DB1].[dbo].[Target_Table1](Target_Column1)
SELECT Source_Column222
FROM [Source_server].[Source_DB1].[dbo].[Source_Table1]
WHERE Source_Column1 = 'ID7162'

次のようになります。

INSERT INTO [dbo].[Target_Table1](Target_Column1)
SELECT Source_Column222
FROM [Source_server].[Source_DB1].[dbo].[Source_Table1]
WHERE Source_Column1 = 'ID7162'

[Target_server]サーバーとデータベースで接続を開く必要があります[Target_DB1][Target_server]また、リンク サーバーのセキュリティ プロパティをに対してチェックする必要があります[Source_server]

于 2013-10-31T12:03:02.077 に答える
-1

ループ バック リンク サーバー (同じサーバー内の同じデータベースを参照するリンク サーバー) を使用している場合は、以下のリンクを参照してください。

ループバック リンク サーバーとのトランザクション - ロックの問題

そうでない場合、これは Microsoft が提供するソリューションです。

于 2016-02-27T05:00:15.187 に答える