sql server 修改表的默认值, 需要先删除约束条件
2015-09-16 10:27
337 查看
---------增加是否发布订单
if not exists(select 1 from syscolumns where name='iIsRelease' and id=OBJECT_ID('MCYD'))
begin
ALTER TABLE MCYD ADD iIsRelease INTEGER DEFAULT 1;
END
GO
UPDATE mcyd SET iIsRelease = 1 WHERE iIsRelease IS NULL
GO
declare @name varchar(100)
--DF为约束名称前缀
select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('mcyd')
and b.id=a.cdefault and a.name='iIsRelease' and b.name like 'DF%'
--删除约束
exec('alter table mcyd drop constraint '+ @name)
ALTER TABLE mcyd ALTER COLUMN iIsRelease INTEGER
--为字段添加新默认值和约束
exec('ALTER TABLE mcyd ADD CONSTRAINT '+@name +' DEFAULT (1) FOR [iIsRelease]')
if not exists(select 1 from syscolumns where name='iIsRelease' and id=OBJECT_ID('MCYD'))
begin
ALTER TABLE MCYD ADD iIsRelease INTEGER DEFAULT 1;
END
GO
UPDATE mcyd SET iIsRelease = 1 WHERE iIsRelease IS NULL
GO
declare @name varchar(100)
--DF为约束名称前缀
select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('mcyd')
and b.id=a.cdefault and a.name='iIsRelease' and b.name like 'DF%'
--删除约束
exec('alter table mcyd drop constraint '+ @name)
ALTER TABLE mcyd ALTER COLUMN iIsRelease INTEGER
--为字段添加新默认值和约束
exec('ALTER TABLE mcyd ADD CONSTRAINT '+@name +' DEFAULT (1) FOR [iIsRelease]')
相关文章推荐
- [Mysql] "Too many connections"
- load data infile上亿条的海量数据导入mysql的那些事
- [转] PostgreSQL学习手册(数据表)
- Mysql 使用存储过程添加新字段
- 设置 oracle sqlplus DBMS_OUTPUT.put_line
- 在Java中使用Memcached缓存技术-win7-64位下
- oracle触发器
- PL/SQL DEVELOPER数字超长显示了科学计数法
- 将dataTable一次性插入数据库的几种方法(SqlBulkCopy或存储过程)
- PL/SQL Developer自动补全SQL技巧
- memcached使用详解
- MySQL 的主从 Replication同步
- LeetCode Database Problems
- 在Windows下安装Oracle 11g的XE(Express版)
- C# 操作数据库的方法
- MongoDB学习日记 - java代码(三):数据库与集合操作
- 设置本地mysql数据库允许远程访问
- 为什么访问数据库要通过端口?
- Navicat for Mysql 10.0.10 注册码
- Maven 3 + Hibernate 3.6 + Oracle 11g Example (XML Mapping)