1

我正在开发一些在 SQL 服务器之间传输数据的代码。在这个阶段,我所有的工作都在同一台服务器上(本地,我是所有者),但我已经在尝试实现将在生产时使用的 OPENROWSET 功能(数据将在不同的服务器上,我将不得不为转移建立查询)。以下 3 个代码应该做同样的事情,但是使用 OPENROWSET 的代码给了我一个错误...... Bref,我被卡住了!如果有人可以帮助...

3部分命名:作品

USE db1
SELECT * INTO dbo.myTable FROM db2.dbo.myTable

开放数据源:有效

USE db1
SELECT * INTO dbo.myTable FROM OPENDATASOURCE
    ('SQLOLEDB', 
    'Data Source=127.0.0.1\SQLEXPRESS;Integrated Security=SSPI'
    ).db2.dbo.myTable

开放式设置:不起作用

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".
4

1 回答 1

1

一方面:您的OPENROWSET声明没有指定服务器实例。

尝试

USE db1
SELECT * INTO dbo.myTable FROM OPENROWSET
    ('SQLOLEDB', 
     'Trusted_Connection=yes;Server=127.0.0.1\SQLEXPRESS', 
     'db2.dbo.myTable')
于 2012-05-30T15:53:03.357 回答