Prisijunkite prie „Microsoft“
Prisijunkite arba sukurkite paskyrą.
Sveiki,
Pasirinkti kitą paskyrą.
Turite kelias paskyras
Pasirinkite paskyrą, kurią naudodami norite prisijungti.

Simptomai

Kai bandote įterpti duomenis į pasirinktinę lentelę arba kai vykdote procesą, kuris įterpia duomenis į pasirinktinę lentelę, gaunate klaidos pranešimą, panašų į šį:

Bandant pasiekti lentelę TableName"SQL Server" įvyko ši (-os) klaida



(-os): 1088, "42000",[Microsoft][ODBC "SQL Server" Driver]["SQL Server"]Nepavyksta rasti objekto "NAVDBName.dbo.CompanyName$ TableName", nes jos nėra arba neturite teisių.



SQL: SET

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

Pastaba Šiame pavyzdyje TableName nurodo kliento "Microsoft Dynamics NAV" lentelę. NAVDBName nurodo kliento "Microsoft Dynamics NAV" duomenų bazės pavadinimą. "CompanyName" nurodo kliento paskirtą įmonės pavadinimą programoje "Microsoft Dynamics NAV".



Ši problema gali kilti "Microsoft Dynamics NAV" versijose, kuriose naudojama Microsoft SQL Server duomenų bazės parinktis.

Priežastis

Ši problema kyla, jei atitinkamos toliau išvardytos sąlygos.

  • Viename iš lentelės laukų, nurodytų klaidos pranešime, ypatybė AutoIncrement nustatyta kaip Taip.

  • Operacija INSERT, kurią naudojate, aiškiai užpildo lauką, kuriame nustatyta ypatybė AutoIncrement kaip Taip.

  • Neturite vienos iš šių teisių:

    • "SYSADMIN" serverio vaidmens narystė "SQL Server"

    • "db_owner" duomenų bazės vaidmens narystė "Microsoft Dynamics NAV" duomenų bazėje

    • "db_ddladmin" duomenų bazės vaidmens narystė "Microsoft Dynamics NAV" duomenų bazėje

Sprendimas

Norėdami išspręsti šią problemą, naudokite vieną iš toliau nurodytų būdų.

1 būdas


Iš dalies pakeisti įterpimo operaciją, kad ji neužpildys lauko, kuriame nustatyta ypatybė AutoIncrement kaip Taip.

2 būdas

Nustatykite atitinkamo lauko ypatybę AutoIncrement kaip Ne.

Pastaba Tiek 1, tiek 2 metodas gali reikalauti "Microsoft Dynamics NAV" kūrėjo pagalbos, ypač jei pakeitimas reikalauja kodo keitimo. Prieš pritaikant pakeitimus "Microsoft Dynamics NAV" duomenų bazei, tokie pakeitimai turi būti kruopščiai patikrinti.

3 būdas

Suteikite pasirinktinės lentelės teises susijusiam taikomosios programos vaidmeniui (pvz., &ndo$shadow, jei pasirinkote standartinį saugos modelį) "SQL Server Management Studio".


Pastaba. Kai vykdote saugos sinchronizavimą programoje "Microsoft Dynamics NAV"SQL Server Management Studio" automatiškai perrašomos lentelėse iš "Microsoft Dynamics NAV" suteiktos teisės. Todėl, paleidę saugos sinchronizavimą, turite dar kartą suteikti teises keisti pasirinktinę lentelę.

Daugiau informacijos

Jei "Microsoft Dynamics NAV" ypatybė AutoIncrement nustatyta kaip Taip, kai duomenų tipas Yra Integer arba BigInteger duomenų tipo laukas, atitinkamas laukas turi būti automatiškai užpildytas unikalia sėjimo reikšme, kurią generuoja sistema. Reikšmė, naudojama lauko padidėjimams iš eilės užpildyti kiekvienam įterptam naujam įrašui.

Kad būtų galima įgyvendinti ypatybę AutoIncrement, "Microsoft Dynamics NAV" apibrėžia "SQL Server" stulpelį, kuriame yra su ja susieta ypatybė IDENTITY. Ypatybė IDENTITY "SQL Server" automatiškai užpildyti stulpelį, kaip aprašyta anksčiau. Jei ypatybė IDENTITY yra įjungta stulpelyje "SQL Server", vartotojai negali aiškiai įvesti atitinkamo stulpelio į sakinį INSERT, nebent vartotojai turi vieną iš šių teisių:

  • "SYSADMIN" serverio vaidmens narystė "SQL Server"

  • "db_owner" duomenų bazės vaidmens narystė "Microsoft Dynamics NAV" duomenų bazėje

  • "db_ddladmin" duomenų bazės vaidmens narystė "Microsoft Dynamics NAV" duomenų bazėje

Be to, kad turi šias teises, vartotojai taip pat turi vykdyti šią komandą, kad būtų baigta įterpimo operacija.

NUSTATYTI IDENTITY_INSERT <table_name> ONKai įvyksta klaidos pranešimas, paminėtas skyriuje "Požymiai", "Microsoft Dynamics NAV" bando paleisti šį SAKINĮ SET "SQL Server".

Metodas, kaip aiškiai užpildyti stulpelį, kuriame yra ypatybė IDENTITY, yra paprastai nebūtinas metodas. Stulpeliai, kuriuose yra ypatybė IDENTITY, paprastai automatiškai užpildomi "SQL Server".

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?
Paspaudus mygtuką Pateikti, jūsų atsiliepimai bus naudojami tobulinant „Microsoft“ produktus ir paslaugas. Jūsų IT administratorius galės rinkti šiuos duomenis. Privatumo patvirtinimas.

Dėkojame už jūsų atsiliepimą!

×