在SQL Server中使用链接服务器数据库创建视图

Kas*_*hif 14 sql sql-server-2005 linked-server

如何在链接服务器数据库上创建视图.例如,我在[5.6.7.8]上有一个链接服务器[1.2.3.4].两个数据库服务器都是SQL Sserver 2005.我想使用链接服务器上的表创建[5.6.7.8]上的View.

编辑:

在使用全名创建[1.2.3.4] .db.dbo.table时,我收到此错误.

SQL执行错误.

执行的SQL语句:SELECT*FROM 1.2.3.4.db.dbo.table (你可以看到括号不存在.) 错误来源:.Net SqlClient数据提供程序错误消息:'0.0'附近的语法不正确.--->部分IP地址.

我只是在ManagementStudio中创建它,而不是使用它,因为它尚未创建.我改变了IP.在图像中,您可以看到IP周围没有括号,但我给出了它,如果错误,这些括号将被删除.

谢谢.

Rya*_*yan 20

您需要使用四部分限定名称:linkedserver.database.schema.table

SELECT * FROM [1.2.3.4].Northwind.dbo.Customers
Run Code Online (Sandbox Code Playgroud)

这是一篇关于访问对象名称的MSDN文章.

您可能希望尝试手动创建视图,而不是使用SQL管理工具:

CREATE VIEW [dbo].[sywx]
AS
    SELECT  *
    FROM    [1.2.3.4].Atia.dbo.IpPbxDCR
GO
Run Code Online (Sandbox Code Playgroud)

我还建议您为链接服务器使用名称(如果可能),而不是使用IP地址.


小智 12

它是一个SQL Management Studio问题.如果您尝试使用管理工作室NEW VIEW创建视图,那么您会得到错误的语法错误.

但是如果你使用SQL Query:

CREATE VIEW [dbo].[viewname] 
AS 
    SELECT  * 
    FROM    [0.0.0.0].database.dbo.table 
GO 
Run Code Online (Sandbox Code Playgroud)

然后它会工作.

要进行测试,您将看到刷新视图时创建的视图.如果您只是从视图中执行选择查询,您将看到视图返回结果.

但是,如果您尝试进入该视图的设计模式并尝试执行设计查询,即使视图已成功创建,也会再次弹出错误.