标签: linked-server

SQL Server使用不同的排序规则查询两个链接的数据库

我有2个远程数据库作为查询的一部分

select p.ID,p.ProjectCode_VC,p.Name_VC,v.*
FROM [serverB].Projects.dbo.Projects_T p
LEFT JOIN [serverA].SOCON.dbo.vw_PROJECT v on
p.ProjectCode_VC = v.PROJ_CODE
Run Code Online (Sandbox Code Playgroud)

问题是serverA使用排序规则Latin1_General_BIN和serverB使用Latin1_General_CP1_CP_AS,并且查询拒绝运行.

两台服务器都是SQL 2000服务器.两个数据库都是一成不变的,所以不幸的是我无法更改它们的排序规则.

无论如何你们都知道如何让它发挥作用吗?

更新: 我找到了另一种解决方案.在"链接服务器属性"中,您可以在那里指定链接服务器的排序规则.

sql-server linked-server

3
推荐指数
1
解决办法
1万
查看次数

SQL - 使用命名实例连接到链接服务器

如何连接到链接SQL Server的命名实例.

如果没有链接,我会做以下事情:

ServerName.DatabaseName.dbo.TableName
Run Code Online (Sandbox Code Playgroud)

如果它是链接的,我会假设如下:

ServerName\InstanceName.DatabaseName.dbo.TableName
Run Code Online (Sandbox Code Playgroud)

但SQL不喜欢"\"

什么是正确的语法

sql-server named-instance linked-server

3
推荐指数
1
解决办法
3万
查看次数

使用Linq在Visual Studio中查询链接服务器

我正在尝试使用Linq通过Visual Studio对我们的SQL Server计算机上的链接服务器运行查询.

在SQL Server上,我已成功创建链接服务器并可以对其运行查询.在Visual Studio中,我已成功向SQL Server添加了新的数据连接(在"服务器资源管理器"下),但链接的服务器表不可用.

如何显示链接的服务器表?或者我甚至可以这样做?

linq sql-server linked-server visual-studio

3
推荐指数
1
解决办法
2610
查看次数

链接服务器SQLNCLI问题。“没有交易处于活动状态”

我试图执行存储过程并将其结果简单地插入临时表中,并且得到以下消息:

由于链接服务器“ MyServerName”的OLE DB提供程序“ SQLNCLI”无法开始分布式事务,因此无法执行该操作。链接服务器“ MyServerName”的OLE DB提供程序“ SQLNCLI”返回消息“没有事务处于活动状态”。

我的查询如下所示:

INSERT INTO #TABLE
EXEC MyServerName.MyDatabase.dbo.MyStoredProcedure Param1, Param2, Param3
Run Code Online (Sandbox Code Playgroud)

确切的列号,名称,不是问题所在。

两台计算机都允许并启动MSDTC,也调用远程过程。

这些机器不在同一个域中,但是我可以从我的机器上执行远程查询并获得结果。我什至可以执行存储过程并查看其结果,只是不能将其插入另一个表中。

编辑


哦,我忘了提及,存储过程不会触发任何触发器。它仅将记录插入临时表中,并创建临时表以进行数据处理。

sql sql-server sql-server-2005 sqlncli linked-server

3
推荐指数
1
解决办法
3万
查看次数

SQL Server:是否可以在不设置链接服务器的情况下从另一个SQL Server获取数据?

我需要执行以下查询(例如):

SELECT c1.CustomerName FROM Customer as c1
INNER JOIN [ExternalServer].[Database].[dbo].[Customer] as c2
ON c2.RefId = c1.RefId
Run Code Online (Sandbox Code Playgroud)

出于某些安全原因,我的客户端不允许我创建链接服务器。我执行此查询的用户可以访问这两个表。是否可以在不使用链接服务器的情况下使其工作?谢谢。

sql t-sql sql-server linked-server

3
推荐指数
1
解决办法
2万
查看次数

如何从两个不同的SQL服务器获取数据?

我有一个内联查询,其中我在server1中有一个table1,在server2中有另一个table2.我需要加入这两个表,并获取数据.

我可以这样做,比如连接到一台服务器,获取数据并连接到下一台服务器......获取数据.并加入他们.

但还有其他更好的方法.我听说过Linked服务器.这会有帮助吗?

提前致谢 !!!

sql-server linked-server fetch

3
推荐指数
1
解决办法
3万
查看次数

如何在另一个数据库服务器上运行T-SQL?

我想从另一台服务器中的另一个数据库中选择一些数据.

我所知道的是添加一个链接服务器,并运行T-SQL.

这种方式是一个不错的选择,还是有其他方法在其他数据库服务器中运行SQL?

谢谢.

sql t-sql sql-server-2005 linked-server

3
推荐指数
1
解决办法
1692
查看次数

使用四个部件名称作为SQL Server链接服务器访问Oracle DB时,列定义错误无效

我在SQL Server 2008 R2中设置了一个链接服务器,以便访问Oracle 11g数据库.MSDASQL提供程序用于通过Oracle Instant Client ODBC驱动程序连接到链接服务器.使用OPENQUERY以下语法时,连接效果很好:

SELECT * 
FROM OPENQUERY(LINKED_SERVER, 'SELECT * FROM SCHEMA.TABLE')
Run Code Online (Sandbox Code Playgroud)

但是,我尝试使用以下语法使用四部分名称:

SELECT * 
FROM LINKED_SERVER..SCHEMA.TABLE
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

消息7318,级别16,状态1,行1
链接服务器"LINKED_SERVER"的OLE DB提供程序"MSDASQL"为表""SCHEMA"返回了无效的列定义.""表"".

有没有人对我的四部分名称查询失败有什么了解,而OPENQUERY一个工作没有任何问题?

linked-server oracle11g sql-server-2008-r2

3
推荐指数
1
解决办法
2995
查看次数

更新Transact SQL链接表时,出现太多行受影响的错误

我正在尝试使用此更新链接表...

update openquery (LINKSERVERID, 'select tng_email from user_list where tng_id = 62873') 
  set tng_email = 'blah@blah.com';
Run Code Online (Sandbox Code Playgroud)

...但是出现以下错误...

链接服务器“ LINKSERVERID”的OLE DB提供程序“ MSDASQL”返回消息“键列信息不足或不正确。太多行受更新影响。”

仅供参考:tng_id是主键。

我该如何解决?

t-sql sql-server linked-server sql-update

3
推荐指数
1
解决办法
3511
查看次数

在 azure sql 数据库中创建链接服务器

想在 azure sql 中创建链接服务器。我想使用链接服务器在 sql azure 中使用本地数据库视图。有没有可能或者有什么替代方法。欢迎提出所有建议。

linked-server azure azure-sql-database

3
推荐指数
1
解决办法
4910
查看次数