【表題】SQL serverでテーブル列名の最大文字数を増やそうとしたら「変更の保存が許可されていません。行った変更には、次のテーブルを削除して再作成することが必要になります。」と怒られた。
【日付】2023/01/14
【詳細】MicrosoftのSQLサーバー SQL serverでテーブル列名の最大文字数を増やそうとしたら「変更の保存が許可されていません。行った変更には、次のテーブルを削除して再作成することが必要になります。再作成できないテーブルに変更を行ったか、テーブルの再作成を必要とする変更を保存できないようにするオプションが有効になっています。」と怒られた。
【解決策】
①最大文字数を増やした新しいテーブルBを作って、②既存テーブルAからBにデータをコピーして、③Aを削除、④Bの名前をAにする。
※称号順序はコピーされない(データベースと同じになる)ので、
テーブルとデータベースの照合順序が異なっていないか確認しておく。
右クリック->プロパティ
DBはJapanese_CI_ASでテーブルがJapanese_BINになってるなど。
①テーブル名をコピー ->テーブルをスクリプト化 -> 新規作成 -> クリップボード
上の方にある[新しいクエリ]をクリックし、貼り付け 。
CREATE TABLE 新しいテーブルB等と変更し、最大文字数を増やしたいテーブルには(4)だったのを(6)などに変更。 -> 実行 -> SQL server 再起動
②[新しいクエリ]で
INSERT INTO 新しいテーブルB
SELECT *
FROM 既存テーブルA