Sql server 使用链接服务器数据库引用的Visual Studio数据库项目
我试图在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没有出现: 以下是视图创建的代码: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。验证是否指定了正确的服务器名称。 如有必要,执
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)', ...
您是否解决了问题?如果是,请添加您的解决方案作为问题的答案。