毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 数据库 >> 正文

sqlserver表里新增一个字段设置了默认值如何写回滚

更新时间:2016-6-1:  来源:毕业论文

例如:
--1、增量脚本
--新增一字段RefundBy 并设置了默认值
ALTER TABLE [dbo].[GW_WRestraurant_Order_Refund]
ADD RefundBy nvarchar(20) NOT NULL DEFAULT ''

--2、回滚脚本
--回滚脚本如下:
--sp_helpconstraint  [GW_WRestraurant_Order_Refund]  --须手工查出来对应的约束值后再drop掉
ALTER TABLE [dbo].[GW_WRestraurant_Order_Refund] DROP CONSTRAINT DF__GW_WRestr__Audit__07970BFE
Go
ALTER TABLE [dbo].[GW_WRestraurant_Order_Refund]
DROP COLUMN RefundBy

问题:回滚脚本如何写成通用的啊?因为执行回滚脚本后,再执行增量脚本后约束的名字变化了

sp_helptext sp_helpconstraint 

分析一这个这个过程,有相关的表

declare @table nvarchar(50)='tbxxx',@column nvarchar(50)='colunname'
 
 
select 'alter table '+@table +' drop constraint ' +name+';
alter table '+@table +' drop column  '+@column
from    sys.default_constraints
where   parent_object_id=object_id(@table)
        and parent_column_id=(select    column_id
                              from      sys.columns
                              where     name=@column
                                        and object_id=object_id(@table)
                             );
--这个语句生成的sql语句,就是你要的.

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。