--为表添加具有默认值的一列
IF Not Exists(select * from syscolumns where [name]='website'
and OBJECTPROPERTY(id,'IsUserTable')=1 and object_name(id)='tbBrowser')
begin
Alter Table [tbBrowser] add [website] nvarchar(50) default('')
end
--删除表中的一列在没有默认值约束的情况下删除
IF Exists(select * from syscolumns where [name]='website'
and OBJECTPROPERTY(id,'IsUserTable')=1 and object_name(id)='tbBrowser')
begin
Alter Table [tbBrowser] drop COLUMN [website]
end
--如果删除列存在默认值约束则首先删除约束再删除列
alter table [tbBrowser] DROP CONSTRAINT DF__tbBrowser__websi__060DEAE8
--假如你不知道默认约束的名字 你可以直接运行删除表中的列,然后查看错误提示,就可找到约束名称,然后执行正常操作先删除默认约束
--也可使用系统自带的查询约束条件的存储过程,然后你就可以看到你需要删除的列的约束的名称
exec sp_helpconstraint [tbBrowser]
--表中添加的新列是否可以为空
alter table table_name add column_name data_type NULL [not NULL]
--修改表中列的数据类型
ALTER TABLE table_name ALTER COLUMN column_name new_data_type
--判断要添加列的表中是否有主键
if exists(select * from sysobjects where parent_obj=object_id('[tbBrowser]') and xtype='PK')
begin
print '表中已经有主键,列只能做为普通列添加'
--添加int类型的列,默认值为0 不能为空
alter table table_name add column_name int default 0 not null
end
else
begin
print '表中无主键,添加主键列'
--添加int类型的列,默认值为0主键自动不能为空
alter table table_name add column_name int primary key default 0
end