标签: linked-server

如何在SQL Server程序/触发器中查找文本?

我有一个会改变的链接服务器.有些程序会像这样调用链接服务器:[10.10.100.50].dbo.SPROCEDURE_EXAMPLE.我们也有触发器做这种工作.我们需要找到[10.10.100.50]用于改变它的所有地方.

在SQL Server Management Studio Express中,我没有在Visual Studio中找到类似"在整个数据库中查找"的功能.一个特殊的系统选择可以帮助我找到我需要的东西吗?

sql-server triggers stored-procedures linked-server

169
推荐指数
5
解决办法
29万
查看次数

SQL Server链接服务器示例查询

在Management Studio中,我正在尝试运行查询/在两个链接的服务器之间进行连接.这是使用链接数据库服务器的正确语法:

select foo.id 
from databaseserver1.db1.table1 foo, 
     databaseserver2.db1.table1 bar 
where foo.name=bar.name
Run Code Online (Sandbox Code Playgroud)

基本上,您是否只将db服务器名称添加到db.table?

sql-server linked-server

87
推荐指数
7
解决办法
46万
查看次数

在查询链接服务器中是否存在非xml数据时,为什么会出现"分布式查询中不支持Xml数据类型"的错误?

我有两个SQL服务器(运行SQL Server 2008)命名DATA01DATA02.DATA02具有链接的服务器定义LINK,指向DATA01适当的用户映射设置.在DATA01那里有一个MyDatabase包含这两个表的数据库:

CREATE TABLE T_A (
    Id int
)

CREATE TABLE T_B (
    Id int,
    Stuff xml
)
Run Code Online (Sandbox Code Playgroud)

当我从中运行此命令时DATA02,我按预期返回数据:

SELECT Id FROM LINK.MyDatabase.dbo.T_A;
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此命令时DATA02,我收到一个错误:

SELECT Id, Stuff FROM LINK.MyDatabase.dbo.T_B;
Run Code Online (Sandbox Code Playgroud)

错误是

分布式查询不支持Xml数据类型.远程对象'DATA02.MyDatabase.dbo.T_B'具有xml列.

奇怪的是,这个命令:

SELECT Id FROM LINK.MyDatabase.dbo.T_B;
Run Code Online (Sandbox Code Playgroud)

即使我不是SELECTxml列,也会出现同样的错误!这是怎么回事?

xml sql-server linked-server

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

如何从SQL Server中的另一个数据库中选择表的数据?

假设,我有一个testdb测试服务器中命名的数据库.此外,我在prod服务器中有一个名为proddb的数据库.

现在我想从proddb数据库中选择testdb数据库表的数据.

我怎么能这样做SQL Server

另外,我可以用做数据库链接预言.但是如何在SQL Server中做到这一点?

sql database sql-server linked-server

46
推荐指数
5
解决办法
30万
查看次数

服务器'服务器上的MSDTC不可用

我在SQL Server上遇到这个奇怪的错误.我在旧帖子中找不到解决方案.

我有这个程序:

create proc _upJM_SyncAll_test
as
begin
    DECLARE @SQLString nvarchar(max)

set @SQLString = N'
DELETE FROM OPENQUERY([LOCAL_MYSQL],''SELECT acSubject FROM _utjm_setitemprices'') where acSubject not in (select acSubject from _uvJM_SetSubj)
DELETE FROM OPENQUERY([LOCAL_MYSQL],''SELECT acSubject FROM _utjm_setsubj'') where acSubject not in (select acSubject from _uvJM_SetSubj)

update a
set acName2 = b.acName2,
    acName3 = b.acName3,
    acAddress = b.acAddress,
    acPost = b.acPost,
    acPostName = b.acPostName, 
    acCountry = b.acCountry, 
    acVATCodePrefix = b.acVATCodePrefix,
    acCode = b.acCode, 
    anDaysForPayment = b.anDaysForPayment
from OPENQUERY([LOCAL_MYSQL],''SELECT * FROM _utjm_setsubj'') a join …
Run Code Online (Sandbox Code Playgroud)

sql-server msdtc linked-server

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

链接服务器是否有"IF EXISTS"测试?

我希望能够以编程方式(在T-SQL中)检查我当前的服务器和数据库是否已存在特定的链接服务器(如果链接尚不存在,我可以创建它).我试过这样的东西:

IF OBJECT_ID('myserver\devdb_1') IS NULL
BEGIN
  PRINT 'Does not exist, need to create link'
  EXEC master.dbo.sp_addlinkedserver @server = N'myserver\devdb_1', 
                                     @srvproduct=N'SQL Server'
END
ELSE
  PRINT 'Link already exists'
Run Code Online (Sandbox Code Playgroud)

但OBJECT_ID测试始终返回null,即使该链接已存在.任何方法都可以检查T-SQL,以便我的其余代码可以假设链接始终存在?

t-sql sql-server linked-server

40
推荐指数
2
解决办法
4万
查看次数

跨服务器SQL

我想将数据从一个服务器的数据库移植到另一个服务器的数据库.这些数据库都位于不同的mssql 2005服务器上.复制可能不是一个选项,因为目标数据库是在[时间间隔]的基础上从头开始生成的.

我倾向于做类似的事情

insert *
from db1/table1
into db2/table2
where rule1 = true
Run Code Online (Sandbox Code Playgroud)

很明显,连接凭据会在这个脚本中出现.

sql t-sql sql-server cross-server linked-server

32
推荐指数
2
解决办法
5万
查看次数

在SQL数据库之间共享数据

我正试图解决一个问题,一次,我没有创造.

我在一个环境中工作,有许多Web应用程序由不同服务器上的不同数据库支持.

每个数据库在设计和应用方面都相当独特,但我仍想提取每个数据库中的常见数据.例如,每个数据库都有供应商表,用户表等......

我想将这个常见数据抽象到单个数据库,但仍然让其他数据库加入这些表,甚至还有密钥来强制执行约束等等......我在MsSql环境中.

在此输入图像描述

有哪些选择?我看到它的方式,我有以下选择:

  • 链接服务器
  • 只读登录以访问视图

还有什么需要考虑的吗?

database sql-server linked-server data-exchange

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

查询链接的sql server

我添加了一个链接服务器,它显示在链接服务器列表中,但是当我查询它时,它会引发数据库服务器名称的错误.

EXEC sp_helpserver
EXEC sp_addlinkedserver 'aa-db-dev01'
Select * from openquery('aa-db-dev01','Select * from TestDB.dbo.users')
Run Code Online (Sandbox Code Playgroud)

消息102,级别15,状态1,行
1'aa-db-dev01'附近的语法不正确.

sql-server linked-server

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

将本地数据库用作链接服务器时出现"延迟准备无法完成"错误

我从本地的Sql Server创建了一个链接服务器,如下所示

http://sqlserverplanet.com/dba/local-linked-server

但是,当我尝试在链接服务器中执行存储过程时,它会抛出:

Deferred prepare could not be completed
Run Code Online (Sandbox Code Playgroud)

错误和无效的对象名称'表名'

sql-server stored-procedures linked-server sql-server-2008

21
推荐指数
2
解决办法
5万
查看次数