gpt4 book ai didi

sql - 修改SQL Server中的默认值

转载 作者:行者123 更新时间:2023-12-01 18:37:31 27 4
gpt4 key购买 nike

我正在尝试使用 SQL Server 2008 中的 SQL 语句更改列的默认值。我在很多地方找到了如何在创建表/添加列时设置默认值,但没有找到如何设置一旦列已经存在就设置/修改它。

这是我可以用来在添加时设置它的内容:

ALTER TABLE MyTable ADD MyColumn int NOT NULL DEFAULT 0

这可行,但如果我稍后尝试修改它:

ALTER TABLE MyTable ALTER COLUMN MyColumn int NOT NULL DEFAULT -1
ALTER TABLE MyTable ALTER COLUMN MyColumn int NOT NULL SET DEFAULT -1

这些在语法上都不正确,而且我在任何地方都找不到执行我假装的操作的语法。我唯一的选择是添加一个新列,复制前一列中的值,然后删除前一列和新列以进行更改,但这对我来说似乎不正确。

有没有一种方法可以用一个简单的句子做我想做的事情?

谢谢。

最佳答案

当您添加具有默认值的列时,会发生以下情况:创建默认约束:

create table _temp 
( x int default 1)

sp_help_temp 结果:

constraint_type constraint_name
DEFAULT on column x DF___temp__x__5A3B20F9

所以列定义中的default子句只是创建约束的快捷方式;默认值不是列的固有属性。如果您想修改现有列的默认值,则必须先删除约束:

alter table _temp drop constraint DF___temp__x__5A3B20F9 

然后创建一个新的默认约束:

alter table _temp add constraint DF_temp_x default 2 for x

关于sql - 修改SQL Server中的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15547210/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com