Как я могу создать представление в DbA, которое ссылается на таблицу в DbB? - PullRequest
1 голос
/ 22 ноября 2011

Возможно ли настроить представление в базе данных 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

1 Ответ

5 голосов
/ 22 ноября 2011

Вы можете создать представление, использующее связанный сервер с другой базой данных, используя именование из трех частей [databaseName].[schemaName].[tableName]

Вы не можете иметь предложение WITH SCHEMABINDING.Использование WITH SCHEMABINDING предотвращает изменения схемы в таблицах, используемых в представлении.Представление AGView в dbA не может гарантировать, что схема табличной формы dbB не была изменена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...