Comment faire pour résoudre “la procédure a un suspens référence à l'objet dbo.sysssislog”
J'ai un Visual Studio 2010 projet de base de données et j'ai importé un schéma existant. Il y a des procédures stockées dans cette base de données qui font référence à l'Intégration du système de Services de table dbo.sysssislog et est de générer un certain nombre de mises en garde dans mon projet.
J'ai essayé d'ajouter le maître.dbschema et la base de données msdb.dbschema que les références de base de données et j'ai aussi essayé de changer les références de la base de données des noms de la base de données tempdb (au lieu de maître ou à la place de la base de données msdb) mais le problème persiste.
J'ai ouvert la base de données msdb.dbschema fichier et j'ai confirmé que le sysssislog table existe dans le fichier.
Voici l'avertissement:
SQL04151: Procedure: [dbo].[storedProcedureName] has an unresolved reference to object [dbo].[sysssislog].
OriginalL'auteur Nick H | 2012-04-12
Vous devez vous connecter pour publier un commentaire.
La
dbo.sysssislog
est une table utilisateur (marqué comme un système de table), créée par SQL Server Integration Services (SSIS) automatiquement, lorsque vous créez un package avec la journalisation des événements de type SQL Server. En plus de ce tableau, SSIS crée aussi des procédures stockées (qui peut êtreALTER
ed) pour aider le processus d'enregistrement.C'est une référence non résolue dans votre projet, probablement parce que vous avez importé le schéma de base de données, qui a abouti à l'importation les procédures stockées mentionné, mais pas de l'importation de la
dbo.sysssislog
tableau, car il est marqué comme étant un système de tableau.Alors maintenant, ce que vous avez est un tas de procédures stockées référencer une table qui vous n'avez pas importé, résultant dans l'avertissement.
Ce que vous pouvez faire pour se débarrasser de l'avertissement(s), est à
DROP
et reCREATE
la table manuellement (qui est le seul moyen de "supprimer" le système de de table de marque), et de l'importer dans votre projet.Non, il ne sera pas. J'ai l'habitude de modifier le tableau pour ajouter de nouvelles colonnes pour la journalisation personnalisé, et n'ai pas eu de problèmes à le faire.
Nice, grâce, en particulier l'indicateur sur la suppression/recréation a été utile.
OriginalL'auteur gonsalu
Voici une alternative et plus propre approche:
Créer un nouveau vide SSDT projet, de l'appeler "sysssislog" et ajouter un script pour sysssislog table. Construire le projet pour générer le fichier dacpac "sysssislog.dacpac".
Dans votre SSDT projet ajouter un databasereference le dacpac fichier et sélectionnez "Base de données" pour l'emplacement de base de données dans le "Ajouter une Base de données de Référence de la boîte de dialogue".
Si votre projet est sous contrôle de code source, vous pouvez ajouter le dacpac pour le projet, puis ajouter la référence, de sorte que le fichier dacpac est sous contrôle de code source.
OriginalL'auteur shapkin