0

すべての列が「NOT NULL」に設定された空のテーブルがあります。テーブルを再作成せずに ALLOW NULL に設定したい。

これを行うにはどうすればよいですか? SQL Server 2008 r2 と管理スタジオを使用しています。

編集 - 列のデータ型を知らなくても、すべての列で null を許可するように設定したい。つまり、データ型を以前と同じに保ちながら、すべてを null に設定します。

4

1 に答える 1

0

ALTER COLUMN 指定された列を変更または変更することを指定します。変更された列は、次のいずれかにすることはできません。

タイムスタンプ データ型の列。

• テーブルの ROWGUIDCOL。

• 計算列、または計算列で使用される。

• 列が varchar、nvarchar、または varbinary データ型であり、データ型が変更されず、新しいサイズが古いサイズ以上であり、インデックスが PRIMARY の結果でない場合を除き、インデックスで使用されます。キー制約。

• 列が varchar、nvarchar、または varbinary データ型でなく、データ型が変更されておらず、新しいサイズが古いサイズ以上である場合、または列が非 null から null に変更されました。まず、DROP STATISTICS ステートメントを使用して統計を削除します。クエリ オプティマイザーによって自動的に生成される統計は、ALTER COLUMN によって自動的に削除されます。

• PRIMARY KEY または [FOREIGN KEY] REFERENCES 制約で使用されます。

• CHECK または UNIQUE 制約で使用されます。ただし、CHECK または UNIQUE 制約で使用される可変長列の長さを変更することは許可されています。

• デフォルトの定義に関連付けられています。ただし、データ型が変更されていない場合は、列の長さ、精度、または位取りを変更できます。

text、ntext、および image 列のデータ型は、次の方法でのみ変更できます。 ◦ text から varchar(max)、nvarchar(max)、または xml へ

◦ ntext から varchar(max)、nvarchar(max)、または xml

◦ イメージから varbinary(最大)

一部のデータ型の変更により、データが変更される場合があります。たとえば、nchar または nvarchar 列を char または varchar に変更すると、拡張文字が変換される場合があります。詳細については、「CAST と CONVERT (Transact-SQL)」を参照してください。列の精度または位取りを下げると、データが切り捨てられる場合があります。

分割されたテーブルの列のデータ型は変更できません。

ドキュメントは次の場所にあります: http://msdn.microsoft.com/en-us/library/ms190273(v=sql.105).aspx

于 2013-03-15T12:40:30.137 に答える