如何使用T-SQL更改表中的一个属性以允许空值(非空 - >空)?可能吗?修改表:如何将'允许空值'属性从非空更改为允许为空
回答
-- 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)',因为如果没有明确指定,它将默认允许空值。 – 2016-02-13 15:53:49
注意,如果需要更改多列以允许为null,那么您将需要单独执行'ALTER TABLE .. ALTER COLUMN ..'命令 – sonyisda1 2017-02-17 15:14:29
请注意,有些情况下可能无法运行 - 请参阅[此DBA Stack Exchange答案] (https://dba.stackexchange.com/a/27293/158)如果您正在获取'ALTER TABLE ALTER COLUMN失败,因为一个或多个对象访问此列。' – 2017-09-06 19:09:28
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])]也必须指定。如果数据类型,精度和比例没有改变,请指定当前列值。 – 2010-10-08 11:34:09
@Daniel Vassallo - 你说得对。我试图完成,但更改NULL/NOT NULL应该是唯一的变化。 – Oded 2010-10-08 11:56:17
是的,你可以使用ALTER TABLE
如下:
NULL
可以ALTER COLUMN
指定给力:ALTER TABLE [table name] ALTER COLUMN [column name] [data type] NULL
从
ALTER TABLE
文件引用一个NOT NULL
列以允许空值,但PRIMARY KEY约束中的列除外。
ALTER TABLE public.contract_termination_requests
ALTER COLUMN management_company_id DROP NOT NULL;
这是我在PostgreSQL上运行的答案。 – 2016-01-18 09:56:46
@ÁronLőrincz这个问题不是关于Postgres的。它被标记为SQL Server,所以这个答案是不正确的。 – 2016-02-13 15:55:35
你是对的,但它仍然对我有帮助,我认为这对于通过Google查找问题的人来说是一个有用的评论。问题的标题并没有说明它是关于哪个数据库服务器。 – 2016-02-14 16:29:46
可以使用
ALTER TABLE table_name ALTER COLUMN column-name DROP NOT NULL;
- 1. 更改列不应该允许为空
- 2. 我如何使不允许列允许空和允许空列不允许空
- 3. 允许jTextField为空?
- 4. 将现有列更改为空时“保存更改不允许”
- 5. Sequelizejs - 为允许为空
- 6. select2 - 如何允许空值
- 7. Sequelize是允许用户键入“空”甚至允许为空:假
- 8. Joi:“tel”不允许为空
- 9. ORACLE约束允许为空值,如果
- 10. 允许空白
- 11. 空不允许,但应为空
- 12. 允许将空值添加到列表
- 13. 如何更改.NET DateTimePicker控件以允许输入空值?
- 14. 允许float在mySQL中为空值
- 15. 查找允许为空的表
- 16. 列不允许有空值
- 17. 如何允许分配为主键的属性中的空格?
- 18. Java列表允许空白
- 19. 允许空值的SQL更新
- 20. 如何在Orchard SchemaBuilder上允许空值?
- 21. EF6 - 注释允许空字符串,但不允许为null
- 22. 允许更改属性的类
- 23. REGEX从列表中选择第n个值,允许为空
- 24. 不允许更改document.domain值
- 25. 获取错误“列不允许为空”
- 26. 为什么允许空的wchar_t文字?
- 27. 在joi中允许字符串为空或空表示验证
- 28. Fluent NHibernate - automapping:允许单个属性为空
- 29. 为什么允许修改argv [0]?
- 30. 允许空外键GUID
SQL Server Management Studio中创建这样一个简单的任务非常复杂的脚本。这就是为什么我感到困惑和检查计算器。也许这就是问题的关键...... – Tillito 2013-02-16 20:36:26