Question : J’essaie d’utiliser la méthode de table ouverte/fermer la table pour créer ma
SQL de dextérité. Toutefois, sur l’instruction « table ouverte », l’erreur SQL suivante est renvoyée : « L’accès à des données de la table xxx a échoué SQL
table ». Lorsque je clique sur Plus d’informations, le lien « [Microsoft][Pilote ODBC SQL Server][SQL Server] Il existe déjà un objet nommé PKADSY4997 dans la base de données. [Microsoft] [Pilote SQL Server ODBC] [SQL Server] Il n’a pas pu créer de contrainte. Voir les erreurs précédentes ».
Le nom physique de ma table est PKADSY4997, qui n’existe pas et ne comprend aucune des procédures zDP stockées pour cette table. Qu’est-ce qui peut être à l’origine de l’erreur ?
Réponse : Dans ce cas, la table a été créée et supprimée précédemment, mais pour une raison quelconque, une contrainte sur la
table n’a pas été supprimée.
Dans l’Analyseur de requête, nous avons fait l’objet de cette requête : sélectionnez * dans
sysobjects où nom = 'PKADSY4997'' L’ID renvoyé était
151193332 et le parent_obj était 173243672.
En regardant la parent_obj, nous avons ensuite fait l’objet de la requête Sélection sur l’objet parent et nous n’avons pas pu en trouver une. Il s’agissait donc d’une contrainte orpheline comme prévu.
À ce stade, nous avons dû supprimer la contrainte orpheline. Tout d’abord, un paramètre doit être modifié.
Dans la SQL Server Propriétés, une case à cocher doit être marquée pour permettre la suppression de cette contrainte. Autorisez les modifications à être directement apportées aux catalogues système.
À présent dans l’Analyseur de requête : supprimez des
sysobjects où nom = ''PKADSY4997' Cette opération a supprimé la contrainte et la table pourrait être re-créée correctement à partir de
Dexterity maintenant.
Cet article était TechKnowknow Document ID:26107