Ich aktualisiere massenhaft eine SQL Server-Datenbank. Ich ändere alle unsere numeric(38,0)
Spalten in int
(ja, SQL Server-Skripte wurden aus Oracle-Skripten erstellt) . Mit SMO und C # (ich bin ein SW-Ingenieur) konnte ich wirklich nette Skripte generieren, wie es SQL Server Management Studio tun würde. Es funktioniert alles sehr gut, bis auf ein bestimmtes Problem:
Wenn ich eine Handvoll Tabellen aufrufe, ALTER TABLE [myTable] ALTER COLUMN [columnA] INT
wird beschlossen, auch die Spalte von zu ändern NOT NULL to NULL
. Das ist natürlich ein großes Problem, da ich Primärschlüssel für die meisten dieser Tabellen in diesen bestimmten Spalten neu generieren muss.
Natürlich habe ich mit SMO viele Optionen, um herauszufinden, welche Spalten Primärschlüssel sind, und um zu erzwingen, dass sie nach oder während der Aktualisierung des Datentyps NICHT NULL sind, aber ich bin wirklich gespannt, was dies verursachen kann.