Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Συμπτώματα

Όταν προσπαθείτε να εισαγάγετε δεδομένα σε έναν προσαρμοσμένο πίνακα ή όταν εκτελείτε μια διαδικασία που εισάγει δεδομένα σε έναν προσαρμοσμένο πίνακα, λαμβάνετε ένα μήνυμα σφάλματος που μοιάζει με το εξής:

Παρουσιάστηκαν τα ακόλουθα σφάλματα SQL Server κατά την πρόσβαση στον πίνακα TableName:



1088, "42000",[Microsoft][Πρόγραμμα οδήγησης ODBC SQL Server][SQL Server]Δεν είναι δυνατή η εύρεση του αντικειμένου "NAVDBName.dbo.CompanyName$ TableName" επειδή δεν υπάρχει ή δεν έχετε δικαιώματα.



SQL: SET

IDENTITY_INSERT "NAVDBName"." dbo"." CompanyName$ TableName" ON

Σημείωση Σε αυτό το παράδειγμα, το TableName αντιπροσωπεύει τον πίνακα Microsoft Dynamics NAV του πελάτη. Η NAVDBName αντιπροσωπεύει το όνομα της βάσης δεδομένων microsoft Dynamics NAV του πελάτη. Η companyName αντιπροσωπεύει την καθορισμένη εταιρική επωνυμία του πελάτη στο Microsoft Dynamics NAV.



Αυτό το πρόβλημα μπορεί να προκύψει σε εκδόσεις του Microsoft Dynamics NAV που χρησιμοποιούν την επιλογή Microsoft SQL Server βάσης δεδομένων.

Αιτία

Αυτό το ζήτημα προκύπτει εάν ισχύουν οι ακόλουθες συνθήκες:

  • Σε ένα από τα πεδία του πίνακα που υποδεικνύεται στο μήνυμα σφάλματος, η ιδιότητα AutoIncrement έχει οριστεί σε "Ναι".

  • Η λειτουργία INSERT που χρησιμοποιείτε συμπληρώνει ρητά το πεδίο στο οποίο έχει οριστεί η ιδιότητα AutoIncrement σε "Ναι".

  • Δεν έχετε ένα από τα ακόλουθα δικαιώματα:

    • Η ιδιότητα μέλους ρόλου διακομιστή SYSADMIN στο SQL Server

    • Η db_owner ιδιότητας μέλους σε ρόλο βάσης δεδομένων για τη βάση δεδομένων Microsoft Dynamics NAV

    • Η db_ddladmin συμμετοχής σε ρόλο βάσης δεδομένων για τη βάση δεδομένων Microsoft Dynamics NAV

Επίλυση

Για να επιλύσετε αυτό το πρόβλημα, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους.

Μέθοδος 1


Τροποποιήστε τη λειτουργία INSERT, έτσι ώστε να μην συμπληρώνει το πεδίο που έχει την ιδιότητα AutoIncrement οριστεί σε "Ναι".

Μέθοδος 2

Ορίστε την ιδιότητα AutoIncrement σε "Όχι" για το σχετικό πεδίο.

Σημείωση Τόσο η Μέθοδος 1 όσο και η Μέθοδος 2 ενδέχεται να απαιτούν τη βοήθεια ενός προγραμματιστή του Microsoft Dynamics NAV, ειδικά εάν η τροποποίηση απαιτεί αλλαγή κώδικα. Αυτές οι αλλαγές θα πρέπει να έχουν ελεγχθεί λεπτομερώς πριν να εφαρμόσετε τις αλλαγές σε μια ζωντανή βάση δεδομένων του Microsoft Dynamics NAV.

Μέθοδος 3

Εκχώρηση δικαιωμάτων τροποποίησης για τον προσαρμοσμένο πίνακα στον σχετικό ρόλο εφαρμογής (για παράδειγμα, &ndo$shadow, εάν έχετε επιλέξει το τυπικό μοντέλο ασφαλείας) σε SQL Server Management Studio.


Σημείωση Τα δικαιώματα που εκχωρούνται με μη αυτόματο τρόπο σε πίνακες από SQL Server Management Studio αντικαθίστανται όταν εκτελείτε ένα συγχρονισμό ασφαλείας στο Microsoft Dynamics NAV. Επομένως, πρέπει να εκχωρήσετε ξανά δικαιώματα Alter στον προσαρμοσμένο πίνακα μετά την εκτέλεση του συγχρονισμού ασφαλείας.

Περισσότερες πληροφορίες

Στο Microsoft Dynamics NAV, εάν η ιδιότητα AutoIncrement έχει οριστεί σε "Ναι" για ένα πεδίο τύπου δεδομένων ακέραιου ή για ένα πεδίο τύπου δεδομένων BigInteger, το σχετικό πεδίο θα πρέπει να συμπληρωθεί αυτόματα από μια μοναδική ακέραια τιμή που δημιουργείται από το σύστημα. Η τιμή που χρησιμοποιείται για τη συμπλήρωση του πεδίου αυξάνεται διαδοχικά για κάθε νέα εγγραφή που εισάγεται.

Για να υλοποιήσετε την ιδιότητα AutoIncrement, το Microsoft Dynamics NAV ορίζει SQL Server στήλη που έχει την ιδιότητα IDENTITY που σχετίζεται με αυτήν. Η ιδιότητα IDENTITY προκαλεί SQL Server αυτόματη συμπλήρωση της στήλης, όπως περιγράφεται παραπάνω. Εάν η ιδιότητα IDENTITY είναι ενεργοποιημένη για μια στήλη του SQL Server, οι χρήστες δεν μπορούν να συμπληρώνουν ρητά τη σχετική στήλη σε μια πρόταση INSERT, εκτός εάν οι χρήστες έχουν ένα από τα ακόλουθα δικαιώματα:

  • Η ιδιότητα μέλους ρόλου διακομιστή SYSADMIN στο SQL Server

  • Η db_owner ιδιότητας μέλους σε ρόλο βάσης δεδομένων για τη βάση δεδομένων Microsoft Dynamics NAV

  • Η db_ddladmin συμμετοχής σε ρόλο βάσης δεδομένων για τη βάση δεδομένων Microsoft Dynamics NAV

Εκτός από αυτά τα δικαιώματα, οι χρήστες πρέπει επίσης να εκτελέσουν την ακόλουθη εντολή για να ολοκληρωθεί η λειτουργία INSERT.

SET IDENTITY_INSERT <table_name> ONWhen the error message that is mentioned in the "Symptoms" section occurs, Microsoft Dynamics NAV is trying to run this SET statement in SQL Server.

Η μέθοδος ρητά συμπλήρωσης μιας στήλης που έχει την ιδιότητα IDENTITY είναι μια μέθοδος που συνήθως δεν απαιτείται. Οι στήλες που έχουν την ιδιότητα IDENTITY συνήθως συμπληρώνονται αυτόματα από SQL Server.

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×