2016-09-07 7 views
1

テーブル内の列をvarchar(8000)からvarchar(MAX)に変更しようとすると、SSMSはテーブルの制約を削除し、新しいテーブルを作成し、古いテーブルのすべてのデータを新しいテーブルに挿入するスクリプトを生成します古いテーブルから外部キーを削除し、古いテーブルを削除し、新しいテーブルの名前を変更してから、新しいテーブルの外部キーを再作成します。これは一般的に 'ALTER TABLE TableA ALTER COLUMN ColumnA varchar(MAX)'を実行するよりも安全ですか? SSMS生成スクリプトと 'ALTER TABLE TableA ALTER COLUMN ColumnA varchar(MAX)'スクリプトのどちらを実行するのですか?varchar(8000)からvarchar(MAX)に列を変更しようとすると、SSMSがテーブルを削除して再作成するのはなぜですか?

+0

私は、なぜ我々は答えることができるとは思わない - 確かにそれはMicrosoftのスクリプトエンジン/ SSMSのデザイナーまででした。私たちは推測するしかありません。 – Bridge

+4

[Management Studioで強制的にDROP/CREATEの代わりにALTER TABLEを使用する]の重複が考えられます(http://stackoverflow.com/questions/2431901/forcing-management-studio-to-use-alter-table-instead-of-drop -create) – Bridge

+0

この質問は、SSMSにより簡単なスクリプトを作成させる方法に関するものではありません。あるスクリプトが他のスクリプトよりも安全かどうか、あるいは機能的に同等かどうかを尋ねています。 – Chris

答えて

関連する問題