如何为现有列设置默认值

这在SQL Server 2008中不起做用: 数据库

ALTER TABLE Employee ALTER COLUMN CityBorn SET DEFAULT 'SANDNES'

错误是: spa

关键字“ SET”附近的语法不正确。 code

我究竟作错了什么? orm


#1楼

ALTER TABLE [dbo].[Employee] ADD  DEFAULT ('N') FOR [CityBorn]

#2楼

尝试执行如下命令; it

ALTER TABLE Person11
ADD CONSTRAINT col_1_def
DEFAULT 'This is not NULL' FOR Address

#3楼

正确的方法以下: io

  1. 运行命令: table

    sp_help [table name]
  2. 复制CONSTRAINT的名称。 form

  3. 删除DEFAULT CONSTRAINT语法

    ALTER TABLE [table name] DROP [NAME OF CONSTRAINT]
  4. 运行如下命令: 方法

    ALTER TABLE [table name] ADD DEFAULT [DEFAULT VALUE] FOR [NAME OF COLUMN]

#4楼

在两种状况下,能够更改列的默认值,

  1. 建立表时
  2. 修改现有表的现有列。

  1. 在建立表/建立新列时。

询问

create table table_name
(
    column_name datatype default 'any default value'
);
  1. 修改现有表的现有列

在这种状况下,个人SQL Server不容许修改现有的默认约束值。 所以,要更改默认值,咱们须要删除现有的系统生成或用户生成的默认约束。 以后,能够为特定列设置默认值。

请遵循如下步骤:

  1. 列出列的全部现有默认值约束。

执行此系统数据库过程,它将表名做为参数。 它返回表中全部列的全部约束的列表。

execute [dbo].[sp_helpconstraint] 'table_name'
  1. 删除列的现有默认约束。

句法:

alter table 'table_name' drop constraint 'constraint_name'
  1. 为该列添加新的默认值约束:

句法:

alter table 'table_name' add default 'default_value' for 'column_name'

欢呼@ !!!


#5楼

Hoodaticus的解决方案是完美的,谢谢,可是我还须要从新运行它,并找到这种方式来检查它是否已经完成...

IF EXISTS(SELECT * FROM information_schema.columns 
           WHERE table_name='myTable' AND column_name='myColumn' 
             AND Table_schema='myDBO' AND column_default IS NULL) 
BEGIN 
  ALTER TABLE [myDBO].[myTable] ADD DEFAULT 0 FOR [myColumn] --Hoodaticus
END
相关文章
相关标签/搜索