Estoy actualizando en masa una base de datos de SQL Server. Estoy cambiando todas nuestras numeric(38,0)
columnas a int
(sí, los scripts de SQL Server se crearon a partir de scripts de Oracle) . Usando SMO y C # (soy un ingeniero sw) , logré generar scripts realmente agradables como lo haría el estudio SQL Server Management . Todo funciona muy bien, excepto por un problema en particular:
para un puñado de tablas, cuando lo llamo ALTER TABLE [myTable] ALTER COLUMN [columnA] INT
decide también cambiar la columna de NOT NULL to NULL
. Eso, por supuesto, es un gran problema, ya que necesito regenerar claves primarias para la mayoría de esas tablas en esas columnas particulares.
Obviamente, tengo muchas opciones usando SMO para descubrir qué columnas son claves principales y forzarlas a NO ser NULAS después o mientras estoy actualizando el tipo de datos, pero tengo mucha curiosidad sobre qué puede estar causando esto.