问题标签 [linked-server]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3233 浏览

sql-server - 无法远程查询 SQL 链接服务器 -> MS Access,仅适用于服务器

我正在开发一个在远程服务器 (LAN) 上查询 SQL Server 2008 Express 实例的 C# 应用程序。

当我在我的工作站/开发机器上时,我可以打开 SQL Server Management Studio 并通过 Windows 身份验证连接到 SQL 实例,并且出于所有意图和目的,体验与在“在”服务器上的 SSMS 中工作相同。据我所知,我可以从我的工作站做任何我可以在服务器上做的事情。

同一台服务器托管一个 Access 2003 .mdb 文件,该文件在 SQL 实例中设置为链接服务器。

有问题的查询返回通过连接来自 SQL db 和 Access db 的表编译的结果集。

当我在服务器“上”执行查询时,也就是说我在服务器机器上运行 SQL Server Management Studio,一切都按预期工作。但是,当我尝试从我的开发机器运行相同的查询时,无论是在 SSMS 中还是在尝试运行集成测试或调试应用程序时,我都无法对链接服务器执行任何操作。我可以在 SSMS 中看到它,但是任何执行任何操作的尝试都会导致:

无法为链接服务器“ <DatabaseName>”初始化 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象。

我查看了许多与此错误相关的线程,并尝试了许多提供程序设置的排列,但都无济于事。

  • Access DB 没有密码(我尝试将安全性设置为使用名称“Admin”无密码)
  • 工作站用户帐户对 Access DB 所在的服务器目录具有完全权限
  • 服务器与 Win XP Pro SP3 和现在 Win Server 2003 的行为相同
  • 客户端与 Win XP Pro SP3 和现在 Win 7 Pro x32 的行为相同

在服务器上工作得很好,从不远程。

非常感谢帮助。

0 投票
1 回答
607 浏览

c# - SQL server timeout 2000 from C# .NET

I have run into a strange problem using SQL Server 2000 and two linked server. For two years now our solution has run without a hitch, but suddenly yesterday a query synchronizing data from one of the databases to the other started timing out.

I connect to a server in the production network, which is linked to a server containing orders I need data from.

The query contains a few joins, but basically this summarizes what is done:

Obviously my first attempt to fix the problem was to increase the timeout limit from the original 5 minutes. But when I arrived at 30 minutes and still got a timeout, I started to suspect something else was going on. A query just does not go from executing in less than 5 minutes to over 30 minutes over night.

I outputted the SQL query (which was originally in the C# code) to my logs, and decided to execute the query in the Query Analyzer directly on the database server. To my big surprise, the query executed correctly in less than 10 seconds.

So I isolated the SQL execution in a simple test program, and observed the same query time out both on the server originally running this solution AND when running it locally on the database server. Also I have tried to create a Stored Procedure and execute this from the program, but this also times out. Running it in Query Analyzer works fine in less than a few seconds.

It seems that the problem only occurs when I execute this query from the C# program. Has anyone seen such behavior before, and found a solution for it?

UPDATE: I have now used SQL Profiler on the server. The obvious difference is that when executing the query from the .NET program, it shows up in the log as "exec sp_executesql N'INSERT INTO ...'", but when executing from Query Analyzer it occurs as a normal query in the log.

Further I tried to connect the SQL Query Analyzer using the same SQL user as the program, and this triggered the problem in Query Analyzer as well. So it seems the problem only occurs when connecting via TCP/IP using a sql user.

0 投票
1 回答
1353 浏览

sql-server - 使用 SQL Server 2000 为 Oracle 链接服务器执行分布式事务

我正在尝试使用 SQL Server 2000 为单个 Oracle 链接服务器执行分布式事务,我想出了以下脚本:

一旦脚本运行,我就会收到以下错误,然后是 SQL Management Studio 冻结并关闭连接。

消息 7399,级别 16,状态 1,第 3 行
链接服务器“WSF08_CONTA_ORADATA_II”的 OLE DB 提供程序“OraOLEDB.Oracle”报告错误。提供商报告了意外的灾难性故障。
消息 7303,级别 16,状态 1,第 3 行无法初始化链接服务器“WSF08_CONTA_ORADATA_II”的 OLE DB 提供程序“OraOLEDB.Oracle”的数据源对象。

到底是怎么回事?

*PD:

  1. 我可以使用常规查询创建/更新/删除数据,但DISTRIBUTED TRANSACTION涉及子句时会出现错误。
  2. 我们最近将服务器升级或链接到 Oracle 10g,值得一提的是,我没有遇到我们使用 9i 的问题。
0 投票
1 回答
3548 浏览

sql-server - 如何捕获从链接服务器返回的错误消息?

如何捕获从链接服务器返回的错误消息?

例如,如果我在 SQL Server Management Studio 中运行以下命令:

我得到以下结果:

链接服务器“my_linked_server”的 OLE DB 提供程序“MSDASQL”返回消息“[Informix][Informix ODBC Driver][Informix]指定的表 (xxx) 不在数据库中。”。ErrorNumber...7215 ErrorSeverity...17 ErrorState...1 ErrorProcedure...ErrorLine...3 ErrorMessage...无法在远程服务器“my_linked_server”上执行语句。

SQL Server 是否存储 OLE DB 提供程序错误?(捕获此信息以进行调试很有用。)

0 投票
1 回答
3435 浏览

sql-server-2005 - 添加链接服务器 - SQL Server 2005 - 稍后更改名称

我正在使用测试 sql 服务器和数据库的测试环境中开发 Web 应用程序。我目前正在添加链接服务器并使用 [Servername].[DatabaseName].dbo.[TableName] 访问链接服务器中的数据库和表。

但是在将其推送到生产环境之后,数据库服务器的名称将会改变。那么我是否需要再次打开每个存储过程并更改服务器名称?

通常的做法是什么?

谢谢你。

0 投票
1 回答
10903 浏览

sql-server - SQL Server 链接服务器到 Microsoft Access

我尝试通过执行以下操作来访问 Microsoft Access 2003 表来使用 SQL Server 2008 中的链接服务器。

但是,我收到错误:

我的访问数据库上没有密码/用户名,但是查看我理解的文档,我必须像上面一样使用 sp_addlinkedsrvlogin。我也试过没有登录。

位我仍然得到同样的错误 - 这是怎么回事?!

谢谢大家

调试输出

[消息] => [Microsoft][SQL Server Native Client 10.0][SQL Server]链接服务器“access1265293168”的 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”返回消息“未指定错误”。) )

0 投票
1 回答
1018 浏览

sql - SQL Server 2008 中使用链接服务器的慢查询。我能看什么?

这个查询最初来自一个 VB6 程序,它访问通过 ODBC 链接到外部数据库的 MS Access 表。运行大约需要3:30。

现在我设置了一个 SQL Server 2008 Express 框来评估我们如何迁移到更好的数据库系统。所以我为外部服务器设置了一个链接服务器(我们称之为 DWPROD),当我转换查询(将 iif 语句更改为大小写)并运行它时,我让它运行了 12 分钟,但它仍然没有完成。我是 SQL Server 的新手,所以我可以看看什么来了解什么需要这么长时间?有什么建议可以加快速度吗?推荐任何资源,以便我可以了解更多信息?与我们的查询相比,这是一个简单的查询,所以我会再次遇到这个问题。

询问:

我知道它很长。感谢您的关注。

0 投票
5 回答
18912 浏览

sql - 是否可以在链接服务器上创建临时表?

我正在对远程链接服务器进行一些相当复杂的查询,能够将一些信息存储在临时表中然后对其执行连接会很有用——所有这些都使用远程数据。在本地创建临时表并通过网络连接它们非常慢。

是否可以强制在远程服务器上创建临时表?假设我没有足够的权限来创建自己的真实(永久)表。

0 投票
1 回答
397 浏览

linked-server - 使用链接服务器查询 oracle 数据库时的性能问题

我正在使用带有 microsoft oledb oracle 驱动程序的链接服务器从 sqlserver 2005 连接 oracle db 服务器。

oracle db 中存在的表具有 DateTime Stamp。因此,我将只从该表中获取最新记录,通过使用 where 条件传递查询。但是查询大约需要 6 到 7 分钟。

我正在查询的表中存在 2000 万条记录。

0 投票
2 回答
4197 浏览

sql - 在 SQL Server 2008 中针对链接服务器运行 DELETE 语句时出现问题

我在运行此查询时遇到问题:

IRPROD 是 Oracle 10g 数据库的链接服务器。它使用 Oracle OleDB 提供程序链接。有大约 79000 条记录需要删除。运行这个查询它会删除 54。再次运行它会给我这个错误消息。

显然,“灾难性失败”是一件坏事。但奇怪的是,我可以整天运行 SELECT 和 INSERT 语句,而且效果很好。我确实有权删除这些行。此外,如果我通过 Access 链接表,我可以删除记录。

有任何想法吗?