作者:周扒pi | 2023-06-27 21:00
如何使用T-SQL更改表中的一个属性以允许空值(非null - > null)?可能会改变表吗?
1> LukeH..:
-- replace NVARCHAR(42) with the actual type of your column
ALTER TABLE your_table
ALTER COLUMN your_column NVARCHAR(42) NULL
或者只是`ALTER TABLE your_table ALTER COLUMN your_column NVARCHAR(42)`因为如果没有明确指定,它将默认允许空值.
注意如果需要更改多个列以允许null,那么您将需要执行单独的`ALTER TABLE .. ALTER COLUMN ..`命令
请注意,在某些情况下,这可能行不通-如果由于以下原因导致ALTER TABLE ALTER COLUMN失败,请参阅[此DBA Stack Exchange答案](https://dba.stackexchange.com/a/27293/158)。或更多对象访问此列。
2> Daniel Vassa..:
是的你可以使用ALTER TABLE
如下:
ALTER TABLE [table name] ALTER COLUMN [column name] [data type] NULL
引用ALTER TABLE
文档:
NULL
可以指定ALTER COLUMN
强制NOT NULL
列允许空值,但PRIMARY KEY约束中的列除外.
3> Oded..:
ALTER TABLE是对的:
ALTER TABLE MyCustomers ALTER COLUMN CompanyName VARCHAR(20) NULL
您确定需要重新定义约束,而只需要重新定义数据类型吗?[MSDN文章](http://msdn.microsoft.com/en-us/library/ms190273.aspx)没有提到需要重新定义约束:"如果使用ALTER COLUMN指定NULL或NOT NULL,还必须指定new_data_type [(precision [,scale])].如果未更改数据类型,精度和比例,请指定当前列值."
4> Vijay Nandwa..:
对于MySQL,MariaDB
ALTER TABLE [table name] MODIFY COLUMN [column name] [data type] NULL
使用MODIFY COLUMN
代替ALTER COLUMN
。