如何在 DbA 中创建引用 DbB 中的表的视图?
Posted
技术标签:
【中文标题】如何在 DbA 中创建引用 DbB 中的表的视图?【英文标题】:How can I create a view in DbA that references a table in DbB? 【发布时间】:2011-11-22 01:40:50 【问题描述】:是否可以在数据库 A 中设置一个引用数据库 B 中的表的视图?
我收到以下错误:
无法架构绑定视图“dbo.AGView”,因为名称“dbB..AG2Table”是 对模式绑定无效。名称必须采用两部分格式,并且 对象不能引用自己。
USE [dbA]
GO
IF EXISTS(SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AGView]'))
DROP VIEW [dbo].[AGView]
GO
USE [dbA]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[AGView] WITH SCHEMABINDING AS
SELECT ag.Id AS [AGId], ag.Name AS [AGName]
FROM dbB..AG2Table agcag
JOIN dbB..AGTable ag on ag.Id = agcag.Id
GO
【问题讨论】:
见***.com/questions/2143199/… 【参考方案1】:您可以使用 3 部分命名 [databaseName].[schemaName].[tableName]
来创建使用链接服务器到另一个数据库的视图
您不能拥有WITH SCHEMABINDING
子句。使用WITH SCHEMABINDING
可以防止对视图中使用的表进行架构修改。 dbA
内的视图AGView
无法保证dbB
表的schema没有被修改。
【讨论】:
以上是关于如何在 DbA 中创建引用 DbB 中的表的视图?的主要内容,如果未能解决你的问题,请参考以下文章