sql server外键假如不合我们的心意,能不能进行重命名呢?答案是肯定的。下文的例子就将为您示范sql server外键如何进行重命名,供您参考。
本实例的数据库原先是采用PowerDesigner设计的,那些外键约束的命名非常难看,并且也和后来在S *** S中额外添加的外键约束命名规则不一致,因此就像遍历数据库的所有外键约束,找到外键约束的相关对象,然后重新生成一致的命名。
采用的命名规则是:
FK_ForeignTable_PrimaryTable_On_ForeignColumn
直白的翻译就是,ForeignTable在ForeignColumn列上引用了PrimaryTable的主键。
Sql Server提供了很多动态管理视图(Dynamic management views,DMV)和存储过程,方便我们对数据库进行维护。这里我用到了以下两个sys.foreign_key_columns(包含外键约束完整信息)和sys.objects(数据库对象信息)这两个DMV以及sp_rename执行重命名的系统存储过程。代码如下:
declare fkcur cursor for select OBJECT_NAME(col.constraint_object_id) as FKConstraintName ,fkTable.name as FKTable ,fkCol.name as FKColumn ,pkTable.name as PKTable ,pkCol.name as PKColumn from sys.foreign_key_columns col -- 外键约束是建立在外键表上的, -- 因此foreign_key_columns表中的parent_object_id和parent_column_id分别表示外键表和外键列 inner join sys.objects fkTable on fkTable.object_id = col.parent_object_id inner join sys.columns fkCol on fkCol.column_id = col.parent_column_id and fkCol.object_id = fkTable.object_id -- foreign_key_columns表中的referenced_object_id和referenced_column_id分别指向 -- 外键约束的主键表对象以及主键列 inner join sys.objects pkTable on pkTable.object_id = col.referenced_object_id inner join sys.columns pkCol on pkCol.column_id = col.referenced_column_id and pkCol.object_id = pkTable.object_id order by OBJECT_NAME(col.constraint_object_id) open fkcur declare @constraintName nvarchar(128) declare @fkTable nvarchar(64) declare @fkColumn nvarchar(64) declare @pkTable nvarchar(64) declare @pkColumn nvarchar(64) declare @newConstraintName nvarchar(128) fetch next from fkcur into @constraintName,@fkTable,@fkColumn,@pkTable,@pkColumn while @@FETCH_STATUS = 0 begin set @newConstraintName = 'FK_'+@fkTable+'_'+@pkTable+'_On_'+@fkColumn exec sp_rename @constraintName,@newConstraintName,'Object' fetch next from fkcur into @constraintName,@fkTable,@fkColumn,@pkTable,@pkColumn end close fkcur deallocate fkcur
北京时间1月13日消息,根据计划,微软将于2015年1月13日正式结束对Windows 7SP1的“主流支持”,而这也标志着“扩展支持”阶段的开始,这个阶段将于2020年1月14日结束。 2013年10月份,微软终止销售独立的Windows 7系统安装包,并要求制造商于2014年10月份停止生...
故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态 Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...
假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...
一、打开控制面板,选择“网络和共享中心”; 二、在网络和共享中心中选择“设置新的连接或网络”; 三、选择连接到Internet; 四、选择“仍要设置新的连接”; 五、选择“宽带PPPoE ”; 六、输入对应的宽带帐号及密码,点击连接即可;...
Ubuntu挂载U盘问题 复制代码代码如下: 老是说special device /dev/sdb1 does not exist,无比郁闷 复制代码代码如下:#fdisk /dev/sda 复制代码代码如下: 是有个 这个咚咚。。。。 复制代码代码如下: 最后: 复制代码代码如下:...
假如你想要在Ubuntu上使用Windows应用,就需要用到Wine了,除了支持Linux系统外,Wine还可运行于其他系统,是个非常使用的软件,下面小编就以Ubuntu 14.04为例,给大家介绍下Ubuntu 14.04安装Wine的步骤。 Ubuntu 14.04安装Wine的步骤 1...