Je mets à jour en masse une base de données SQL Server. Je modifie toutes nos numeric(38,0)colonnes en int (oui, les scripts SQL Server ont été créés à partir de scripts Oracle) . En utilisant SMO et C # (je suis un ingénieur sw) , j'ai réussi à générer de très beaux scripts comme le ferait SQL Server Management Studio . Tout fonctionne très bien, sauf pour un problème particulier:
pour une poignée de tables, lorsque j'appelle, ALTER TABLE [myTable] ALTER COLUMN [columnA] INTil décide de changer également la colonne NOT NULL to NULL. C'est bien sûr un énorme problème car j'ai besoin de régénérer les clés primaires pour la plupart de ces tables sur ces colonnes particulières.
Évidemment, j'ai beaucoup d'options à l'aide de SMO pour savoir quelles colonnes sont des clés primaires et les forcer à ne PAS être NULL après ou pendant la mise à jour du type de données, mais je suis vraiment curieux de savoir ce qui peut provoquer cela.