2017-10-19 96 views
0

我有一个拥有1亿行的生产表,并且为了报告目的,我们需要添加一个额外的列,它将是一个数字(18,0)。显然,SQL获胜不要让我在添加该列时删除表格。除此之外,我可以通过其他方式影响数据吗?无法在sql服务器中添加删除表的列

+0

它应该是好的,如果你通过这样做是为了增加它'改变table'。如果您使用的是设计师,并且*特别是如果您想将它定位在最后一列以外的任何位置,那么设计师可以选择放置/创建。 –

回答

0

您可以添加一列而不删除表格。

ALTER TABLE YourTable 
ADD SomeColumnName NUMERIC(18,0) 

UPDATE

如果你想列NOT NULL那么你就必须让它先接受NULL,然后通过更新设置的值,最后改变列NOT NULL

或设置默认值,比如

ALTER TABLE YourTable 
ADD SomeColumnName DECIMAL(18,0) NOT NULL DEFAULT 1 
+0

就是这样?如果这不会放弃我的表,只增加新的专栏,我会很高兴。请给它一个机会!谢谢 – SQLHunter

+0

我试过了,但结果是一样的....当我运行这样的表述时ALTER TABLE YourTable ADD SomeColumnName NUMERIC(18,0)它抛出一个错误消息4901,级别16,状态1,行1 ALTER TABLE只允许添加可以包含空值的列,或者指定DEFAULT定义, 或者添加的列是标识或时间戳列,或者 或者如果前面的条件都不满足,则表必须是空的才能允许添加此列.... – SQLHunter

+0

ALTER TABLE [dbo]。[obligation_monthend_snapshots] ADD [417_number]数字(18,0)NOT NULL – SQLHunter