none
Nye felter tillader null i databasen RRS feed

  • Spørgsmål

  • Hej

    Når jeg opretter nye felter i dbd, bliver de oprettes med "tillader null". Det må være noget som jeg ved en fejl har fået pillet ved. Jeg tror det går helt tilbage fra flytning af databasen fra en gammel sql server.

    Det er et helvede at rette for C5 vil ikke gøre det selv.

    Nogen, der har en god idé til hvad jeg skal se efter på databasen (mssql 2014)?

    18. august 2019 09:56

Alle besvarelser

  • Hej Jørgen

    Check lige hvad dette script gør:
    


    Venlig Hilsen Henrik Hansen Senior Software Engineer Microsoft Dynamics SCM

    • Foreslået som svar af Gert Lynge 25. august 2019 08:53
    23. august 2019 14:08
    Ejer
  • Hej Jørgen,

    Du gør (mig bekendt) ikke noget forkert - det er blot noget der sker når der er poster i en tabel og du udvider den med et felt. C5 (eller rettere SQL-serveren) har jo ingen idé om hvad der rent faktisk skal stå i feltet på de eksisterende poster..

    Jeg plejede (det er 1½ år siden jeg har arbejdet med C5) blot at bruge den kørsel Henrik Hansen foreslår til at finde dem med (den retter dem ikke - men finder dem blot) og starter så Microsoft SQL Server Management Studio (SSMS) for at fjerne dem (simpelthen blot fjerne fluebenet i at feltet tillader NULL).

    Jeg mener at jeg en enkelt gang har haft problemer med at ENUM? lige skulle sættes til en værdi (via en kørsel i C5) før jeg kunne fjerne NULL...

    Det er i øvrigt ret vigtigt at få dem fjernet da værdien er ulovlig i C5 (se evt.: https://scblog.lynge.org/?p=219).


    MVH gert@dabbler.dk Se også: http://blog.systemconnect.dk/



    • Redigeret af Gert Lynge 25. august 2019 08:52
    • Foreslået som svar af Gert Lynge 25. august 2019 08:53
    25. august 2019 08:52
  • Hej Henrik.

    Det virker kun på en Oracle og jeg kører på MSSQL.

    /Jørgen

    31. august 2019 13:21
  • Hej Gert

    Jeg er vandt til at arbejde i XAL på Oracle, og når man opretter felter der, fyldes de automatisk med chr(2), 0 hhv 01/01/1900:01 hvorefter feltet sættes til not nullable af kernen.

    Ulempen ved det er at det tager evigheder at oprette felter i store tabeller, men til gengæld er der aldrig null værdier.

    Jeg troede det samme gjorde sig gældende i en C5 på MSSQL.

    /Jørgen

    31. august 2019 13:24