テーブルを削除して再作成することなく、SQL Server 2008データベースの列タイプをvarchar(255)
からvarchar(MAX)
に変更できますか?
SQL Server Management Studioは、それを使用しようとするたびにエラーをスローしますが、DROPとCREATEを行わずにタイプを変更できるかどうかを知るのは頭痛の種です。
ありがとう
TSQLを使用して実行できるはずです。
何かのようなもの
ALTER TABLE [table] ALTER COLUMN [column] VARCHAR(MAX)
'変更の保存は許可されていません。行った変更では、次のテーブルを削除して再作成する必要があります。再作成できないテーブルに変更を加えたか、[テーブルの再作成が必要な変更の保存を禁止する]オプションを有効にしました。オプション「変更を保存しない」は有効になっていません。
これは、SQL Server Management Studio 2008の新しい「機能」であり、デフォルトで有効になっています。大きな変更を加えるときはいつでも、SSMSは新しいテーブルを作成してから、古いテーブルのデータをすべてバックグラウンドで移動することによってのみテーブルを再作成できます(これらの変更には、列の並べ替えなどが含まれます)。
テーブルにFK制約などがある場合、この方法でテーブルを再実行すると失敗する可能性があるため、このオプションはデフォルトでオフになっています。しかし、あなたは間違いなくその機能をオンにすることができます!
Tools > Options
の下にあり、このオプションをオフにすると、テーブルデザイナでテーブル構造にこのような変更を再度行うことができます。