2013-03-15 77 views
0

我有一個空表,其中所有列都設置爲「NOT NULL」。我想將它設置爲允許NULL而不重新創建表。如何在sql server 2008中的表的所有列中允許null?

我該怎麼做?我正在使用SQL Server 2008 R2和管理工作室。

EDIT- 我想設置所有的列允許null而不必知道列的數據類型。也就是說,將全部設置爲空,同時保持數據類型與之前相同。

+0

寫TSQL或使用SSMS表設計視圖 – 2013-03-15 10:27:14

+0

@MitchWheat - 我不明白你在說什麼。請更詳細地解釋它。 – 2013-03-15 10:29:54

+1

你爲什麼想這樣做?如果所有列都是「NULL」,則表格將無法擁有主鍵。 – 2013-03-15 10:29:56

回答

0

ALTER COLUMN 指定命名列將被更改或更改。 修改過的列不能是以下任何一種:

具有時間戳記數據類型的列。

• 該表的ROWGUIDCOL。

• 計算列或在計算列中使用。

• 在索引中使用,除非該列是varchar,nvarchar或varbinary數據類型,數據類型不會更改,新大小等於或大於舊大小,並且索引不是PRIMARY KEY約束的結果。

• 用於由CREATE STATISTICS語句生成的統計信息,除非該列是varchar,nvarchar或varbinary數據類型,數據類型不會更改,並且新大小等於或大於舊大小,或者列是否從非null更改爲null。首先,使用DROP STATISTICS語句刪除統計信息。查詢優化器自動生成的統計信息將自動由ALTER COLUMN刪除。

• 用於PRIMARY KEY或[FOREIGN KEY] REFERENCES約束。

• 用於CHECK或UNIQUE約束。但是,更改CHECK或UNIQUE約束中使用的可變長度列的長度是允許的。

• 與默認定義相關聯。但是,如果數據類型未更改,則可以更改列的長度,精度或比例。

文本的數據類型,ntext和image列可以僅在以下方面有所變化: ◦ 文本爲varchar(最大),爲nvarchar(最大),或者XML

◦ NTEXT爲varchar(最大值),爲nvarchar(最大),或者XML

◦ 圖像VARBINARY(最大)

某些數據類型的變化可能導致數據的變化。例如,將nchar或nvarchar列更改爲char或varchar可能會導致擴展字符的轉換。有關更多信息,請參閱CAST和CONVERT(Transact-SQL)。降低列的精度或縮放比例可能會導致數據截斷。

分區表的列的數據類型無法更改。

文檔可以在這裏找到: http://msdn.microsoft.com/en-us/library/ms190273(v=sql.105).aspx

+1

不好回答,沒用。但是,我會拿分。謝謝。 – 2013-03-16 01:17:34

相關問題