I possède une base de données FooDb
avec un schéma BarSchema
qui contient une table Tbl
(à savoir FooDb.BarSchema.Tbl
)schéma par défaut de synonymes
Je suis également identifié en tant que utilisateur avec BarSchema
par défaut.
Cette requête fonctionne bien
SELECT * FROM FooDb..Tbl
J'ai aussi un synonyme de ce tableau dans un autre db
CREATE SYNONYM TblSynonym FOR FooDb..Tbl
Mais maintenant, je reçois une erreur « Nom d'objet incorrect « FooDb..Tbl » " lors de l'exécution
SELECT * FROM TblSynonym
Si je change le synonyme de
CREATE SYNONYM TblSynonym FOR FooDb.BarSchema.Tbl
cela fonctionne très bien.
Pourquoi le schéma par défaut ne fonctionne-t-il pas dans les synonymes? (En arrière-plan, je rassemble des données de plusieurs bases de données qui ont toutes le même nom de table mais des noms de schéma différents.) Je pourrais définir le schéma par défaut pour chaque base de données sur l'utilisateur, puis ignorer partout dans le script)
J'ai vérifié que le schéma par défaut est correct sous Base de données-> Sécurité-> Utilisateurs et Connexion-> Sécurité-> Connexions-> Utilisateur. (L'erreur se produit lors de l'utilisation du synonyme, pas lors de sa création) – adrianm