
-- 更改字段类型 默认值 alter table 表名 alter column 字段名 类型
ALTER TABLE 表名 add DEFAULT ('修改后的默认值') for 字段名 WITH VALUES --注:如果该字段以前已经有默认值了,在修改之前需要先将约束删除,否则会报错
--删约束的SQL:
Alter table 表名 drop constraint 约束名 --关于约束名,需要先查一下,
--查约束名的SQL:
select c.name from sysconstraints a
inner join syscolumns b on a.colid=b.colid
inner join sysobjects c on a.constid=c.id
where a.id=object_id('表名')
and b.name='字段名' /*
A. 添加新列
以下示例将添加一个允许空值的列,而且没有通过 DEFAULT 定义提供的值。
在该新列中,每一行都将有 NULL 值。
*/
CREATE TABLE doc_exa ( column_a INT) ;
GO
ALTER TABLE doc_exa ADD column_b VARCHAR(20) NULL ;
GO
DROP TABLE doc_exa ;
GO --B. 删除列
ALTER TABLE doc_exb DROP COLUMN column_b ;
GO --C. 更改列的数据类型
INSERT INTO doc_exy (column_a) VALUES (10) ;
GO
ALTER TABLE doc_exy ALTER COLUMN column_a DECIMAL (5, 2) ; --D. 添加包含约束的列
ALTER TABLE doc_exc ADD column_b VARCHAR(20) NULL
CONSTRAINT exb_unique UNIQUE ; /*
E. 在现有列中添加一个 DEFAULT 约束
以下示例将创建一个包含两列的表,在第一列插入一个值,
另一列保持为 NULL。然后在第二列中添加一个 DEFAULT 约束。
验证是否已应用了默认值,另一个值是否已插入第一列以及是否已查询表。
*/ ALTER TABLE doc_exz
ADD CONSTRAINT col_b_def
DEFAULT 50 FOR column_b ;