问题标签 [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.
sql - 跨服务器 SQL
我想将数据从一台服务器的数据库移植到另一台服务器的数据库。数据库都位于不同的 mssql 2005 服务器上。复制可能不是一种选择,因为目标数据库是在 [时间间隔] 基础上从头开始生成的。
最好我会做类似的事情
很明显,连接凭据会出现在这个脚本中。
sql - 如何防止插入查询注册到分布式事务?
我在存储过程中有一个 SQL 插入查询,用于将行插入到链接服务器表中。
由于存储过程在父事务中被调用,因此此 Insert 语句尝试使用 DTC 将行插入链接服务器。
我想避免DTC 参与其中。
有什么方法可以让插入 SQL 语句忽略事务范围?
sql-server-2000 - 链接服务器性能和选项
在工作中,我们有两台服务器,一台正在运行一个很多人使用的应用程序,它有一个 SQL Server 2000 后端。很长一段时间以来我一直可以自由地查询它,但不能向它添加任何东西,例如存储过程或额外的表。
这导致我们将第二个 SQL Server 链接到第一个 SQL Server,而我构建了一个存储过程库,该库使用链接服务器从双方查询数据。其中一些查询花费的时间比我想要的要长。
有人可以给我一些关于使用链接服务器的好文章吗?我对找出两者之间正在传输的数据特别感兴趣,因为通常大多数 sql 语句都可以远程执行,但我感觉它可能正在传输完整的表,它通常只是一个小的 final 的连接本地表。
另外我目前有什么链接服务器选项:
- 校对兼容 True
- 数据访问真
- RPC 真
- Rpc 输出真
- 使用远程整理 False
- 排序规则名称(空白)
- 连接超时 0
- 查询超时 0
编辑:
只是想我会更新这篇文章,我使用了带有动态参数的 openqueries 一段时间来提高性能,谢谢你的提示。但是,当您最终处理字符串时,这样做会使查询更加混乱。终于在今年夏天,我们将 SQL Server 升级到 2008 并实现了实时数据镜像。老实说,对于我的任务,开放查询的速度已经接近本地查询的速度,但镜像确实使 sql 更容易处理。
sql-server - 从 SQL Server 2000 到 DB2/AS400 的 OpenQuery 导致锁定
每天早上,我们都有一个进程在 AS400/iSeries/i6(无论 IBM 现在如何称呼它)上向 DB2 发出大量查询(约 10000 个),在过去的 2 个月中,操作员一直在抱怨我们的查询锁定了几个文件阻止他们完成夜间处理。查询非常简单,例如
我不是 iSeries 方面的专家,我想知道是否有人从 AS400/Db2 的角度对锁升级有任何见解。导致锁定的 ID 已确认是我们注册链接服务器的 ID,我们知道它最有可能是我们,因为 [Library] 和 [FileName] 与我们发出的查询一致。
这种情况最近才开始发生。是否有可能是我们的选择语句导致 AS400 升级锁?问题是它们在没有人工干预的情况下不会被释放。
sql-server-ce - 您可以创建从 SQL Server(任何版本)到 SQL Server CE (3.5) 数据库的链接服务器吗?
我们从 Redgate 购买了一个名为 SQL Data Compare 的工具。我主要将它用于测试目的,以证明我的应用程序正在对我认为的数据库进行修改,而不是进行任何其他更改。
我当前的应用程序同时具有“在线”和“离线”编辑功能。在联机模式下,您直接使用 SQL Server,而在脱机模式下,您正在使用 SQL CE (3.5) 文件中的表子集。
无论如何,SQL 数据比较工具不支持 SQLCE,所以我希望我可以创建一个链接到 SQLCE 数据库的服务器,并创建一个通过视图镜像 CE 数据库的 SQL Server 数据库,这样我就可以进行测试了。
所以,我不知道如何创建到 SQLCE 数据库的链接服务器。有谁知道这是怎么做到的吗?
sql-server - SQL Server 查询使用不同排序规则的两个链接数据库
作为查询的一部分,我有 2 个远程数据库
问题是 serverA 使用排序Latin1_General_BIN
规则,而 serverB 使用Latin1_General_CP1_CP_AS
并且查询拒绝运行。
两台服务器都是 SQL 2000 服务器。这两个数据库都是一成不变的,所以很遗憾,我无法更改它们的排序规则。
无论如何,你们知道如何让它工作吗?
更新: 我找到了另一种解决方案。在链接服务器属性中,您可以在那里指定链接服务器的排序规则。
sql-server-2005 - 从 SQL 2005 链接服务器执行 DB2 iSeries 存储过程
我正在尝试从 MS SQL 2005 中的链接数据库执行存储过程。链接数据库是 iseries 服务器上的 db2 数据库。我正在使用 iSeries IBMDASQL 服务提供者。我可以使用简单的 vbscript 和 ado 毫无问题地查询存储过程。当我尝试在 SQL Server 上的查询分析器中执行相同的存储过程时,我从未看到任何结果。查询分析器总是显示“命令已执行”,当我在临时表上执行 select * 时,没有值出现。我究竟做错了什么?????谢谢!
--下面查询分析器的代码--
更新:这是使用openquery的更新代码......仍然没有运气:(
DECLARE @TSQL varchar(8000) DECLARE @emailToAddress varchar(50) DECLARE @emailFromAddress varchar(50) SET @emailToAddress = 'customer.service@company.com' SET @emailFromAddress = 'customer@gmail.com' SET @TSQL = ' SELECT * FROM OPENQUERY(MAM400,''CALL abicqual.VP_GETCCEPGMID(''''' + @emailToAddress + ''''', ''''' + @emailFromAddress + '''''' + ')''' + ')' 打印@TSQL 执行 (@TSQL)
--下面的输出 -- SELECT * FROM OPENQUERY(MAM400,'CALL abicqual.VP_GETCCEPGMID(''customer.service@company.com'', ''customer@gmail.com'')') Msg 7357, Level 16, State 2、第1行无法处理对象“CALL abicqual.VP_GETCCEPGMID('customer.service@company.com', 'customer@gmail.com')”。链接服务器“MAM400”的 OLE DB 提供程序“IBMDASQL”指示该对象没有列或当前用户对该对象没有权限。
sql - 加入链接服务器还是加入主机服务器?
情况如下:我们需要连接一个 Oracle 数据库以提取一些数据。由于访问上述 Oracle 数据库是一件非常痛苦的事情(主要是官僚障碍,而不是其他任何事情),我们只是计划将其链接到我们的 SQL Server 并使用该链接在需要时访问数据。
对于我们的一个应用程序,我们计划制作一个视图以获取我们需要的数据。现在我们需要的数据来自两个表。如果我们这样做,哪个更可取?
这(如果存在这样的事情,在伪 SQL 中):
或这个:
有什么理由更喜欢其中一个吗?需要记住的一件事:我们限制了查询可以运行多长时间来访问 Oracle 服务器。
sql - 使用 MSDTC 的链接服务器错误
我正在展示一个通过 Internet 在两个系统之间使用“链接服务器”进行数据事务的存储过程示例
当我运行存储过程时,我在不同的执行时间得到不同的错误
有时会显示此错误
另一次显示此类错误
我在客户端使用 Windows Xp 和 SQL Server 2005,在 Net Server 中使用 Windows Server 2003 和 Sql server 2005
我在两个系统中都设置了 MSDTC
我该如何解决这个问题(并提供正确的信息以在 Windows XP 和 Windows server 2003 中设置 MSDTC)
sql - 您可以在 SQLServer 2k5 中的链接服务器表的视图上使用外键吗?
我有一个带有链接服务器的 SQLServer,它连接到其他地方的另一个数据库。我在该链接服务器上创建了一个视图
我想以下
但这会产生错误:“外键 'fk1_baz_to_foo' 引用了不是用户表的对象 'dbo.vw_foo'。”
如果我尝试使用以下方法将外键直接放在表上
然后我收到以下错误:
对象名称“LINKEDSERVER.RemoteDatabase.dbo.tbl_bar”包含的前缀数量超过了最大数量。最大值为 2。
有什么办法可以达到同样的效果吗?