Comment puis-je créer une vue dans DbA qui fait reference à une table dans DbB?

Est-il possible de configurer une vue dans la database A qui fait reference à une table dans la database B?

Je reçois l'erreur suivante:

Impossible de lier le schéma 'dbo.AGView' car le nom 'dbB..AG2Table' n'est pas valide pour la binding de schéma. Les noms doivent être au format en deux parties et un object ne peut pas se referencer lui-même.

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 

Vous pouvez créer une vue qui utilise un server lié à une autre database à l'aide d'une dénomination en trois parties [databaseName].[schemaName].[tableName]

Vous ne pouvez pas avoir la clause WITH SCHEMABINDING . L'utilisation de WITH SCHEMABINDING empêche les modifications de schéma sur les tables utilisées dans la vue. La vue AGView dans dbA n'a aucun moyen de s'assurer que le schéma de la forme de la table dbB n'a pas été modifié.