• 单表的列信息(序号)操作


    --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

  • 相关阅读:
    校门外的树
    学生档案
    冒泡排序法
    寻找最大数序列
    初识结构体
    找零钱
    冒泡的应用
    关于数组的逆序重放
    关于质数
    字符串转换为日期格式
  • 原文地址:https://www.cnblogs.com/guanshan/p/guan20141119-2.html
Copyright © 2020-2023  润新知