zoukankan      html  css  js  c++  java
  • 单表的列信息(序号)操作

    --use wangkejidatabase

    use demodtcms

    SELECT a.colid,* from syscolumns a inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name ='gggggggggg' left join syscomments e on a.cdefault=e.id --WHERE a.name='asda11'

    use wangkejidatabase

    SELECT a.colid,* from syscolumns a inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name ='gggggggggg' left join syscomments e on a.cdefault=e.id --WHERE a.name='asda11'

    use demodtcms
    select * from sysobjects where type='F' and parent_obj = OBJECT_ID('test')

    use wangkejidatabase
    --外键信息
    select fk.name fkname , ftable.name ftablename, cn.name fkcol, rtable.name ftablename,ObjectProperty(fk.id,'CnstIsUpdateCascade') updatCase,ObjectProperty(fk.id,'CnstIsDeleteCascade') deletCase from sysforeignkeys
    join sysobjects fk
    on sysforeignkeys.constid = fk.id
    join sysobjects ftable
    on sysforeignkeys.fkeyid = ftable.id
    join sysobjects rtable
    on sysforeignkeys.rkeyid = rtable.id
    join syscolumns cn
    on sysforeignkeys.fkeyid = cn.id and sysforeignkeys.fkey = cn.colid

    --外键被参考表
    SELECT 主键列ID=b.rkey
    ,主键列名=(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid)
    ,外键表ID=b.fkeyid
    ,外键表名称=object_name(b.fkeyid)
    ,外键名称= c.name
    ,外键列ID=b.fkey
    ,外键列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid)
    ,级联更新=ObjectProperty(a.id,'CnstIsUpdateCascade')
    ,级联删除=ObjectProperty(a.id,'CnstIsDeleteCascade')
    FROM sysobjects a
    join sysforeignkeys b on a.id=b.constid
    join sysobjects c on a.parent_obj=c.id
    join syscolumns cn
    on b.fkeyid = cn.id and b.fkey = cn.colid
    where a.xtype='f' AND c.xtype='U'
    and object_name(b.rkeyid)='dt_article'


    DECLARE @dbname1 varchar(250)--要比较的数据库名1
    DECLARE @dbname2 varchar(250) --要比较的数据库名2

    set @dbname1='demodtcms'
    set @dbname2='wangkejidatabase'

    create table #fk1(外键名 varchar(250),子表名 varchar(250),子表列 varchar(250),被参考表 varchar(250),被参考列 varchar(250),启用 bit,
    删除操作 varchar(50),更新操作 varchar(50))

    --use demodtcms
    --外键详细信息
    insert into #fk1 SELECT
    外键名=f.name --AS foreign_key_name
    ,子表名=OBJECT_NAME(f.parent_object_id) --AS table_name
    ,子表列=COL_NAME(fc.parent_object_id, fc.parent_column_id) --AS constraint_column_name
    ,被参考表=OBJECT_NAME (f.referenced_object_id) ---AS referenced_object
    ,被参考列=COL_NAME(fc.referenced_object_id, fc.referenced_column_id) --AS referenced_column_name
    ,启用=is_disabled
    ,删除操作=delete_referential_action_desc
    ,更新操作=update_referential_action_desc
    FROM sys.foreign_keys AS f
    INNER JOIN sys.foreign_key_columns AS fc
    ON f.object_id = fc.constraint_object_id
    WHERE f.parent_object_id in (SELECT id from sysobjects WHERE xtype='U') ORDER BY f.name
    --= OBJECT_ID(''test'')

    SELECT * FROM #fk1

  • 相关阅读:
    火焰图&perf命令
    C10K问题
    cocosStudio中使用PageView,ListView和ScrollView
    vim基本命令
    Git命令学习总结(-)
    可在 html5 游戏中使用的 js 工具库
    待飞日记(第十一篇)
    待飞日记(第十篇)
    待飞日记(第八天和第九天)
    高质量C++/C编程指南
  • 原文地址:https://www.cnblogs.com/guanshan/p/guan20141119-2.html
Copyright © 2011-2022 走看看