[gelöst] Fehler beim Upgrade zu NAV 2013 R2

7. August 2014 13:07

Im Step 1 "Prepare the existing data for the upgrade" / Task 4 "Data conversion" erhalte ich immer einen Fehler, wenn ich die NAV2013-Datenbank zu NAV 2013 R2 konvertieren möchte. Der genaue Fehlertext lautet:

The following SQL Server error or errors occured:
4924,"42S22",[Microsoft][SQL Server Native Client 10.0][SQL Server]Fehler bei ALTER TABLE ALTER COLUMN, da die 'Version List'-Spalte in der Object-Tabelle nicht vorhanden ist.

SQL:
ALTER TABLE [dob].[Object] ALTER COLUMN[Version List][VARCHAR](248) NOT NULL


Der Fehler ist umso ärgerlicher, weil es (fast) der letzte Schritt wäre von einem Upgrade einer alten 2.60.A-Datenbank auf NAV 2013 R2. Hat irgendjemand eine Idee, was der Grund sein könnte und wie ich den Fehler beheben könnte?

Im NAV Development Environment habe ich ja keinen Zugriff auf die Tabelle 2000000001 "Object". Und wenn ich den Feldname in der SQL Server Datenbank ändere, erhalten ich beim Konvertieren den Fehler "The Version List field on the Object table does not exist in the SQL Server table or view."
Zuletzt geändert von Minu63 am 8. August 2014 15:05, insgesamt 1-mal geändert.

Re: Fehler beim Upgrade zu NAV 2013 R2

7. August 2014 13:57

Herzlich Willkommen im Forum!
Welches Build von NAV 2013 R2 wird da eingesetzt?
Die Länge der Versionsliste hat sich von 80 auf 248 geändert. Leider gibt es Builds von NAV 2013 R2, die konvertieren die DB auch dann, wenn man beim Öffnen bei der Konvertierungsfrage auf "Abbrechen" drückt.
Beispiel:
http://saurav-nav.blogspot.de/2014/04/n ... tains.html

Re: Fehler beim Upgrade zu NAV 2013 R2

7. August 2014 14:07

Cumulative Update 9 ist installiert, die Version lautet somit 7.10.37221.
Das Konvertieren von 6.0 R2 auf 2013 (ohne R2) klappte problemlos mit dem Build 7.00.36347...

Re: Fehler beim Upgrade zu NAV 2013 R2

8. August 2014 12:09

Hallo Minus63,

welche Änderung hast Du auf dem SQL-Server durchgeführt? Hat diese Spalte tatsächlich gefehlt?

Der SQL-Server möchte die Spalte ändern. Diese ist aber nicht vorhanden. Das ist ganz merkwürdig, denn die Spalte sollte eingentlich da sein.

Du köntest diese Tabelle mit einer aus der Standard Cronus DB vergleichen.

Hier ist die Tabelle aus NAV 2013:

Code:
CREATE TABLE [dbo].[Object](
   [timestamp] [timestamp] NOT NULL,
   [Type] [int] NOT NULL,
   [Company Name] [varchar](30) NOT NULL,
   [ID] [int] NOT NULL,
   [Name] [varchar](30) NOT NULL,
   [Modified] [tinyint] NOT NULL,
   [Compiled] [tinyint] NOT NULL,
   [BLOB Reference] [image] NULL,
   [BLOB Size] [int] NOT NULL,
   [DBM Table No_] [int] NOT NULL,
   [Date] [datetime] NOT NULL,
   [Time] [datetime] NOT NULL,
   [Version List] [varchar](80) NOT NULL,
   [Locked] [tinyint] NOT NULL,
   [Locked By] [varchar](132) NOT NULL,
 CONSTRAINT [Object$0] PRIMARY KEY CLUSTERED
(
   [Type] ASC,
   [Company Name] ASC,
   [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO


und hier aus NAV 2013 R2:

Code:
CREATE TABLE [dbo].[Object](
   [timestamp] [timestamp] NOT NULL,
   [Type] [int] NOT NULL,
   [Company Name] [varchar](30) NOT NULL,
   [ID] [int] NOT NULL,
   [Name] [varchar](30) NOT NULL,
   [Modified] [tinyint] NOT NULL,
   [Compiled] [tinyint] NOT NULL,
   [BLOB Reference] [image] NULL,
   [BLOB Size] [int] NOT NULL,
   [DBM Table No_] [int] NOT NULL,
   [Date] [datetime] NOT NULL,
   [Time] [datetime] NOT NULL,
   [Version List] [varchar](248) NOT NULL,
   [Locked] [tinyint] NOT NULL,
   [Locked By] [varchar](132) NOT NULL,
 CONSTRAINT [Object$0] PRIMARY KEY CLUSTERED
(
   [Type] ASC,
   [Company Name] ASC,
   [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Data Filegroup 1]
) ON [Data Filegroup 1] TEXTIMAGE_ON [Data Filegroup 1]

GO


Wie Kowa bereits geschriebe wird in der R2 DB das Feld Version List verändert von 80 Zeichen auf 248 zeichen

Gruß

Michael

Mit der Buildverision 37221 habe ich ebenfalls keine guten Erfahrungen bei Upgrade gemacht. Ich habe von Microsoft diesbezüglich ein Hotfix bekommen.

Re: Fehler beim Upgrade zu NAV 2013 R2

8. August 2014 12:21

Hallo Michael!

Die Spalte ist in der dbo.Object schon vorhanden, nur heisst sie halt nicht [Version List], sondern [Versionsliste].

Aus meiner Sicht handelt es sich daher eher um ein Sprachlayer-Problem. Ich bin jetzt zwei, drei Schritte zurück gegangen und arbeite jetzt konsequent nur noch mit ENU. Das heisst, ich habe aus meinen Navision-Verzeichnissen die anderen Sprachen gelöscht und die fin.etx und fin.stx aus dem ENU-Verzeichnis ins Hauptverzeichnis kopiert. Im Moment läuft der Restore des "Native"-Backups in die SQL-Datenbank. Falls es jetzt funktioniert, werde ich es auf jeden Fall hier posten.

Könntest Du mir aber sicherheitshalber den Microsoft-Hotfix ebenfalls zur Verfügung stellen? Besten Dank im voraus.


Liebe Grüsse
Minu63

Re: Fehler beim Upgrade zu NAV 2013 R2

8. August 2014 12:25

Hallo,

in deinem ersten Beitrag schreibst du, dass du eine alte Financials 2.60A-Datenbank auf NAV2013 R2 updaten willst.
Unter Financials hieß das jetzige Feld "Version List" noch "Versionsübersicht".
Welche Migrationsschritte hast du denn vor dem Update auf NAV2013 (ohne R2) ausgeführt?

Re: Fehler beim Upgrade zu NAV 2013 R2

8. August 2014 12:40

Hallo Minus63,

das ist nicht ein Sprachlayer Problem sondern die Konvertierung der Object Tabelle. In NAV 2.60 wurden die Tabelle und Feldnamen mit deutschen Begriffen benannt. Wie ist es bei den anderen Feldern in der Object-Tabelle?

Läuft die 2.60 DB bereits auf einem SQL-Server?

Hier ist der Hotfix von MS:

http://hotfixv4.microsoft.com/Dynamics% ... 86_zip.exe

Gruß

Michael

Re: [gelöst] Fehler beim Upgrade zu NAV 2013 R2

8. August 2014 15:09

Lieber Michael!

Ob's ein Sprachlayer-Problem ist oder nicht, ist nicht mehr relevant, denn jetzt (nach dem Austauschen der fin.stx und der fin.etx durch diejenigen Versionen aus dem ..\ENU-Verzeichnis) hat's geklappt!
Da ich das sowohl für den 2009R2 - Client wie auch für den 2013er gemacht habe, weiss ich jetzt allerdings nicht, ob wirklich beides nötig gewesen wäre oder ob evt. auch nur das Austauschen im 2013er gereicht hätte.

Wie dem auch sei, ich bin jetzt einfach nur froh, dass es jetzt endlich funktioniert hat, nachdem ich mich fast die ganze Woche immer und immer wieder mit diesem Problem befasst hatte. Ich danke Euch allen trotzdem für Eure Bemühungen. Für allfällige weitere Fragen stehe ich gerne zur Verfügung.

Re: [gelöst] Fehler beim Upgrade zu NAV 2013 R2

8. August 2014 19:57

Hallo miteinander,
der Fall ist zwar schon gelöst, dennoch möchte ich an dieser Stelle nochmals auf die Tabelle
$ndo$dbproperty hinweisen. In dieser Tabelle gibt ein Feld "Identifiers" in dem quasi nochmals ein Abbild der Tabelle Object steht:

2000000001=Object,
1=Type,
2=Company Name,
3=ID,
4=Name,
5=Modified,
6=Compiled,
7=BLOB Reference,
8=BLOB Size,
9=DBM Table No_,
10=Date,
11=Time,
12=Version List,
40=Locked,
50=Locked By

etwa so (Stand 2013 R2).
Wenn man nun von alten, sehr alten Versionen kommt, also noch vor meiner Geburt :roll: :lol: , dann kann es sein, das hier nicht das drinsteht, was eigentlich drinstehen sollte (Bezogen auf die aktuelle Version vor Migration nach 2013 R2).

Ich hatte auch mal den Fall, das er behauptet hätte, die Spalte "Version List" wäre nicht vorhanden und war dann beleidigt.
Ich hab das dann mal in obiger Tabelle und In der Tabelle Object (via SQL geändert) und dann lief er durch.

Beste Grüße