Я массово обновляю базу данных SQL Server.Я изменяю все наши numeric(38,0)
столбцы на int
(да, сценарии SQL Server были созданы из сценариев Oracle) .
Использование SMO и C # (я swинженер) , мне удалось создать действительно хорошие сценарии, такие как SQL Server Management Studio .
Все это работает очень хорошо, за исключением одной конкретной проблемы:
Длянесколько таблиц, когда я звоню
ALTER TABLE [myTable] ALTER COLUMN [columnA] INT
, он решает также изменить столбец с NOT NULL на NULL .Это, конечно, огромная проблема, поскольку мне нужно регенерировать первичные ключи для большинства этих таблиц в этих конкретных столбцах.
Очевидно, у меня есть множество вариантов использования SMO, чтобы выяснить, какие столбцы являются первичными ключами и принудительноони не будут иметь значение NULL после или во время обновления типа данных, но мне действительно любопытно, что может быть причиной этого.
С уважением,
Эрик.