Sto aggiornando in massa un database di SQL Server. Sto cambiando tutte le nostre numeric(38,0)
colonne in int
(sì, gli script di SQL Server sono stati creati da script Oracle) . Usando SMO e C # (sono un ingegnere sw) , sono riuscito a generare script davvero piacevoli come farebbe SQL Server Management Studio . Funziona tutto molto bene, tranne per un problema particolare:
per una manciata di tabelle, quando chiamo ALTER TABLE [myTable] ALTER COLUMN [columnA] INT
decide di cambiare anche la colonna da NOT NULL to NULL
. Questo ovviamente è un grosso problema poiché ho bisogno di rigenerare le chiavi primarie per la maggior parte di quelle tabelle su quelle particolari colonne.
Ovviamente, ho molte opzioni usando SMO per scoprire quali colonne sono chiavi primarie e costringerle a NON essere NULL dopo o mentre sto aggiornando il tipo di dati, ma sono davvero curioso di sapere cosa può causare questo.