SQL Serverデータベースを一括更新しています。すべてのnumeric(38,0)
列をint
(はい、SQL ServerスクリプトはOracleスクリプトから作成されました)に変更しています。SMOとC#(私はswエンジニアです)を使用して、SQL Server Management Studioのように本当に素晴らしいスクリプトを生成することができました。1つの特定の問題を除いて、すべて非常にうまく機能します。
ほんの一握りのテーブルのために、私がALTER TABLE [myTable] ALTER COLUMN [columnA] INT
それを呼び出すと、列もから変更することにしますNOT NULL to NULL
。もちろん、それらの特定の列にあるほとんどのテーブルの主キーを再生成する必要があるため、これは大きな問題です。
明らかに、私はSMOを使用して、どの列が主キーであるかを見つけ、データ型の更新中または更新中にそれらを強制的にNOT NULLにする多くのオプションを持っていますが、これが何が原因であるかについては本当に興味があります。