zoukankan      html  css  js  c++  java
  • sql server 数据字典的妙用

    以下提到的一些需求,你可能会说用SQL server management studio 客户端 看一下不就可以了,何必这么麻烦 ! 是的,当1 个表的时候我们可以人工检查,但当有10 个表,100个表 的时候呢? 人工检查不但费时费力,而且非常容易出错, 通过数据字典查询高效快捷。 眨眼

    • 查找一个表的主键包含哪些列?
    --可以根据需要,自行修改 where 字句中的 条件
    SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_NAME), 'ISPRIMARYKEY') = 1 AND TABLE_SCHEMA='dbo' AND TABLE_NAME='EXPRESSION'
    • 统计某个schema下有多少个表
    --可以根据需要,修改where字句的条件,例如 表名满足一定的pattern :table_name like ‘ACCOUNT%’
    SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='DBO'
    • 统计包含某个字段名的所有表
    SELECT TABLE_CATALOG,TABLE_SCHEMA,TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME='<COLUMN_NAME>'
    • 统计数据量比较大的表的条数
    SELECT t.name, s.row_count from sys.tables t JOIN sys.dm_db_partition_stats s
    ON t.object_id = s.object_id
    AND t.type_desc = 'USER_TABLE'
    AND s.index_id = 1
    AND t.name ='<table_name>'
    • 查找依赖于某个表的数据库对象(2008版本以上)
    --当我们要把某张表废弃掉,用这个方法可以找出所有受影响的对象
    SELECT
            referencing_schema_name, referencing_entity_name, 
            referencing_class_desc, is_caller_dependent
    FROM sys.dm_sql_referencing_entities ('<TableName>', 'OBJECT')
    • 查找某个存储过程依赖的数据库对象(2008版本以上)
    SELECT
            referenced_schema_name, referenced_entity_name, referenced_minor_name, 
            referenced_class_desc, is_caller_dependent, is_ambiguous
    FROM sys.dm_sql_referenced_entities ('<StoredProcedureName>', 'OBJECT');
  • 相关阅读:
    Microsoft.VisualBasic.PowerPacks相关错误解决办法
    GridView绑定技巧终结者
    类型初始值设定项引发异常处理办法
    目前为目最全的CURL中文说明CURL
    [转]大型网站架构之优酷篇
    [原]ecshop代码分析二(缓存处理)
    [转]大型网站架构不得不考虑的10个问题
    [原]ecshop代码分析一(init.php文件)
    发布一款坐标转换软件
    坐标换算软件操作方法及下载地址
  • 原文地址:https://www.cnblogs.com/vincent2010/p/4773600.html
Copyright © 2011-2022 走看看