仓酷云

标题: 使用Sql查询指定表的一切外键束缚及外键表名与列名 [打印本页]

作者: 爱飞    时间: 2015-1-16 14:09
标题: 使用Sql查询指定表的一切外键束缚及外键表名与列名
用一个库#bak_database存放这些历史数据。先看看我们要用到的几个目次视图的注释:
1,sys.foreign_keys--在这个视图中前往了一切的外键束缚
2,sys.foreign_key_columns--在这个视图中前往了一切外键列(只前往列的id)
3,sys.columns--在这个视图中前往了表与视图的一切列

示例:
好比我们要查询表tb1的一切外键信息,代码以下:
select
a.nameas束缚名,
object_name(b.parent_object_id)as外键表,
d.nameas外键列,
object_name(b.referenced_object_id)as主健表,
c.nameas主键列
fromsys.foreign_keysA
innerjoinsys.foreign_key_columnsBonA.object_id=b.constraint_object_id
innerjoinsys.columnsConB.parent_object_id=C.object_idandB.parent_column_id=C.column_id
innerjoinsys.columnsDonB.referenced_object_id=d.object_idandB.referenced_column_id=D.column_id
whereobject_name(B.referenced_object_id)=tb1;
因此我们看到,这些信息足够让我们对单个操作实现“逆操作”。
作者: 只想知道    时间: 2015-1-18 12:18
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
作者: 愤怒的大鸟    时间: 2015-1-24 16:48
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
作者: 蒙在股里    时间: 2015-2-2 11:29
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
作者: 兰色精灵    时间: 2015-2-7 19:19
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
作者: 小妖女    时间: 2015-2-23 09:32
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
作者: 活着的死人    时间: 2015-3-7 07:46
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
作者: 冷月葬花魂    时间: 2015-3-14 17:27
入门没那么困难,精通没那么容易
作者: 深爱那片海    时间: 2015-3-21 14:03
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2