Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用链接服务器数据库引用的Visual Studio数据库项目_Sql Server_Visual Studio 2013_Linked Server_Database Project - Fatal编程技术网

Sql server 使用链接服务器数据库引用的Visual Studio数据库项目

Sql server 使用链接服务器数据库引用的Visual Studio数据库项目,sql-server,visual-studio-2013,linked-server,database-project,Sql Server,Visual Studio 2013,Linked Server,Database Project,我试图在VisualStudio2013(使用SQLServer2008)项目中使用链接服务器数据库引用 我能够让它建立另一个项目的参考概述 在此链接中: [ 但项目在部署步骤中失败,出现以下错误: 错误474 SQL72014:.Net SqlClient数据提供程序:Msg 7202,级别11,状态2, 过程rs_ReportSubscriptions,第3行在中找不到服务器“TBSSRV07\TBSSQLDEVSRV” sys.servers。验证是否指定了正确的服务器名称。 如有必要,执

我试图在VisualStudio2013(使用SQLServer2008)项目中使用链接服务器数据库引用

我能够让它建立另一个项目的参考概述 在此链接中:

[

但项目在部署步骤中失败,出现以下错误: 错误474 SQL72014:.Net SqlClient数据提供程序:Msg 7202,级别11,状态2, 过程rs_ReportSubscriptions,第3行在中找不到服务器“TBSSRV07\TBSSQLDEVSRV” sys.servers。验证是否指定了正确的服务器名称。 如有必要,执行存储过程sp_addlinkedserver将服务器添加到sys.servers。 有关此错误的更多信息,请参阅产品文档中的疑难解答主题。 C:\tfs2010\EtracsDatabase\Etracs\bin\Debug\Etracs.sql

在部署的服务器上,这正在工作(使用链接服务器…链接:TBSSRV07\TBSSQLDEVSRV)

这在视图创建脚本中发生。我已尝试添加sp_addLinkedServer 但在部署代码中,我的sp_addlinkedServer没有出现:

以下是视图创建的代码:

    EXEC sp_addlinkedserver   
   @server=N'TBSSRV07', 
   @srvproduct=N'',
   @provider=N'SQLNCLI', 
   @datasrc=N'TBSSRV07\TBSSQLDEVSRV';

GO
CREATE VIEW [dbo].[rs_ReportSubscriptions] AS 
SELECT  C.Name ,
        CAST(ExtensionSettings AS XML).value('(/ParameterValues/ParameterValue/Value)[1]',
                                             'varchar(250)') AS TargetSettingsTo ,
        CAST(ExtensionSettings AS XML).value('(/ParameterValues/ParameterValue/Value)[2]',
                                             'varchar(250)') AS TargetSettingsCC ,

        LastStatus ,
        LastRunTime
FROM    [$(TBSSRV07)].[$(ReportServer)].dbo.Subscriptions AS S
        JOIN [$(TBSSRV07)].[$(ReportServer)].dbo.Catalog AS C ON C.ItemID = S.Report_OID
以下是出现问题的结果脚本:

GO
PRINT N'Creating [dbo].[rs_ReportSubscriptions]...';


GO
CREATE VIEW [dbo].[rs_ReportSubscriptions] AS 
SELECT  C.Name ,
        CAST(ExtensionSettings AS XML).value('(/ParameterValues/ParameterValue/Value)[1]',
                                             'varchar(250)') AS TargetSettingsTo ,
        CAST(ExtensionSettings AS XML).value('(/ParameterValues/ParameterValue/Value)[2]',
                                             'varchar(250)') AS TargetSettingsCC ,

        LastStatus ,
        LastRunTime
FROM    [$(TBSSRV07)].[$(ReportServer)].dbo.Subscriptions AS S
        JOIN [$(TBSSRV07)].[$(ReportServer)].dbo.Catalog AS C ON C.ItemID = S.Report_OID
GO
PRINT N'Update complete.';
最后,这里是我在数据库引用中使用的值: :setvar TBSSRV07“TBSSRV07\TBSSQLDEVSRV”

不确定这是否是“最佳”答案,但在这种情况下,我添加了一个预部署脚本来创建链接服务器(如果它不存在)

IF NOT EXISTS (SELECT 1 FROM sys.servers s WHERE s.[name] = N'$(TBSSRV07)' AND s.is_linked = 1)
BEGIN
    EXECUTE sp_addlinkedserver N'$(TBSSRV07)', ...

您是否解决了问题?如果是,请添加您的解决方案作为问题的答案。