SQL Server修改已有字段类型,并添加默认约束
2016-10-19 16:02
316 查看
当数据表中存在数据,修改具有默认约束的字段定义时,需要先删除已有约束,才能对字段定义进行修改;而在SQL Server建表时创建的默认约束,其名称后会自动生成一段随机码,因此在删除时需要找到(在SQL Server Management Studio中选择表——>约束,可以看到以DF_开头的默认约束)已有约束名,再进行删除,这一过程较为繁琐。
现采用以下代码实现对默认约束的自动匹配,并修改。看代码:
f you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!
现采用以下代码实现对默认约束的自动匹配,并修改。看代码:
-- 修改已有字段类型(eg:整型)为字符串,并添加、修改(如果有的话)默认约束(默认值为空串) USE [库名] DECLARE @name VARCHAR(50); SELECT @name=b.name FROM syscolumns a,sysobjects b WHERE a.id=object_id('[LGShare_OrgFiles]') AND b.id=a.cdefault AND a.name='FromWhere' AND b.name LIKE 'DF%'; IF @name IS NOT NULL BEGIN EXEC('ALTER TABLE [表名] DROP CONSTRAINT '+@name); --删除已有约束 ALTER TABLE [表名] ALTER COLUMN [列名] NVARCHAR(4) NOT NULL; --修改字段定义 EXEC('ALTER TABLE [表名] ADD CONSTRAINT '+@name+' DEFAULT '+''''+''''+' FOR [列名]'); -- 添加修改后的约束,注意此处空串的写法 END ELSE BEGIN ALTER TABLE [表名] ADD CONSTRAINT DF_列名 DEFAULT '' FOR [列名]; --添加新约束 END
f you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!
相关文章推荐
- Mysql字段操作—添加字段、删除字段、修改字段名、修改字段类型(约束条件) 、重命名表名
- sql server 创建table表 及添加各种约束 查看约束 删除约束 新增表的字段 规则及规则使用方法及应用到表中 时间函数的类型
- T-SQL 创建表- 修改表默认字段数值 SQL SERVER
- sql添加,修改数据及删除表,表约束、字段及数据
- oracle修改表名、列名、字段类型、添加表列、删除表列
- Mysql字段操作—增加字段、删除字段、修改字段名、修改字段类型(约束条件) 【转】
- SQL Server中使用表类型参数批量添加和修改的存储过程
- SQL SERVER 批量修改字段的数据类型
- Mysql字段操作—增加字段、删除字段、修改字段名、修改字段类型(约束条件)
- oracle怎样修改表名、列名、字段类型、添加表列、删除表列
- oracle修改表名、列名、字段类型、添加表列、删除表列
- •SharePoint 2010 UserProfile 添加属性 •修改默认模板页 •Taxonomy字段绑定TermSet
- oracle怎样修改表名、列名、字段类型、添加表列、删除表列
- 2009-12-01 15:10 SQL SERVER 2008数据库的表中修改字段的数据类型后,不能保存
- 批量修改字段的类型(SQL Server)--varchar到nvarchar
- 删除默认约束存储过程及增加、修改、删除字段语法
- 表操作——修改、添加、删除、字段;添加、删除约束等(举例详细说明)
- oracle 修改表名、列名、字段类型、添加列、删除列
- SQL SERVER 2008数据库的表中修改字段的数据类型后,不能保存
- SQL Server 2008数据库表中修改字段的数据类型后,不能保存