【问题标题】:Add a parameter in a SQL Server linked connection在 SQL Server 链接连接中添加参数
【发布时间】:2016-11-28 07:45:47
【问题描述】:
select @dbName="DBNAME"

select Distributorid  from [180.552.528.854,21414].[@dbName].DBO.DistributorMaster where Distributorid =XXXXXX

错误:用于链接的 OLE DB 提供程序“SQLNCLI10” 服务器[180.552.528.854,21414] 不包含表 ""@dbName"."DBO"."DistributorMaster""。该表要么不存在 或者当前用户没有该表的权限。

【问题讨论】:

  • declare @dbName varchar(50) = 'DBNAME';声明局部变量
  • 仅限动态 sql。
  • 已经声明

标签: sql-server


【解决方案1】:

试试这个。 动态变量值查询。

            declare 
            @dbname nvarchar(max) ='dbName',


            @query nvarchar(max) ='select Distributorid  from [180.552.528.854,21414].[@dbName].DBO.DistributorMaster 
            where Distributorid =XXXXXX'

            SET @Query=REPLACE(@Query,'@dbname',@dbname)

            --print(@Query)

            execute SP_executesql  @Query

【讨论】:

    【解决方案2】:

    查询链接服务器时,需要按以下模式指定全限定表名:

    SERVER.DATABASE.SCHEMA.OBJECT
    

    除此之外,请在 SQL Server Management Studio 的帮助下检查该表是否列在链接服务器上,Linked Servers 下。

    编辑: 请检查this 网站,如果您已完全实施本网站上注明的所有步骤。

    还有一个应该被忽略的共同点:

    ", @datasrc=@ServerName" 添加到您的sp_addlinkedserver 语句中。

    【讨论】:

    • 是的,一切正常,但是当我使用参数时,它的抛出错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 2022-01-06
    • 1970-01-01
    • 2021-04-13
    • 2018-04-15
    • 2011-09-01
    • 2012-10-18
    相关资源
    最近更新 更多