SQLサーバー間でデータを転送するコードを開発しています。このフェーズでは、すべての作業が同じサーバー(ローカル、所有者)で行われますが、実稼働時に使用されるOPENROWSET機能(データが異なるサーバー上にあり、私が転送のクエリを作成する必要があります)。次の3つのコードはまったく同じことをするはずですが、OPENROWSETを使用するコードはエラーを出します... Bref、私は立ち往生しています!誰かが助けることができれば...
3つの部分の命名:動作します
USE db1
SELECT * INTO dbo.myTable FROM db2.dbo.myTable
OPENDATASOURCE:動作します
USE db1
SELECT * INTO dbo.myTable FROM OPENDATASOURCE
('SQLOLEDB',
'Data Source=127.0.0.1\SQLEXPRESS;Integrated Security=SSPI'
).db2.dbo.myTable
OPENROWSET:機能しません
USE db1
SELECT * INTO dbo.myTable FROM OPENROWSET
('SQLOLEDB',
'Trusted_Connection=yes;Server=(Local)',
'db2.dbo.myTable')
次のメッセージが表示されます。
OLE DB provider "SQLNCLI" for linked server "(null)" returned message "Login timeout expired".
OLE DB provider "SQLNCLI" for linked server "(null)" returned message "An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.".
もちろん、接続文字列の標準プロパティを使用しようとしましたが(OPENDATASOURCEの場合と同様)、次のエラーも発生していました。
OLE DB provider "SQLNCLI" for linked server "(null)" returned message "Invalid authorization specification".
OLE DB provider "SQLNCLI" for linked server "(null)" returned message "Invalid connection string attribute".