public string GetObjectTypeName(object oType)
{
switch (oType+"")
{
case "U":
return "用户表";
case "V":
return "视图";
case "P":
return "存储过程";
case "TF":
return "表函数";
case "FN":
return "标量函数";
case "C":
return "CHECK约束";
case "D":
return "默认值或DEFAULT约束 ";
case "F":
return "FOREIGN KEY 约束 ";
case "IF":
return "内嵌表函数 ";
case "K":
return "PRIMARY KEY或 UNIQUE约束";
case "L":
return "日志";
case "R":
return "规则";
case "RF":
return "复制筛选存储过程";
case "S":
return "系统表";
case "TR":
return "触发器";
case "X":
return "扩展存储过程";
}
return "";
}
查询数据库脚本:
SELECT name AS DbName,[dbid] As DbId,filename As FileName FROM [Master].dbo.[sysdatabases] Where dbid>4 Order by name 查询表脚本:
SELECT [{0}].dbo.sysobjects.name As TableName,id As TableId,
(Select top 1 rowcnt From [{0}].dbo.sysindexes Where id=[{0}].dbo.sysobjects.id) As RecordCount,
ISNULL(E.name,'') As PropertyName,
ISNULL(E.value,'') As PropertyValue
FROM [{0}].dbo.sysobjects
LEFT JOIN sys.extended_properties E ON E.major_id=[{0}].dbo.sysobjects.id AND E.minor_id=0
Where xtype='U' AND [{0}].dbo.sysobjects.name not in ('dtproperties','sysdiagrams') Order By [{0}].dbo.sysobjects.name 查询数据库对象脚本:
SELECT T.name As ObjectName,T.id As ObjectId,rTRIM(T.xtype) AS ObjectType,
(SELECT Top 1 A.[definition] FROM [{0}].sys.sql_modules A JOIN [{0}].sys.objects B ON A.object_id = B.object_id
Where B.name=T.name) As ObjectDefinition
FROM [{0}].dbo.sysobjects T
Where xtype in ( N'P', N'PC',N'FN', N'IF', N'TF', N'FS', N'FT', N'V',N'TR')
AND T.name not in ('dtproperties','sysdiagrams')
Order By T.name 查询列与字段:
Select
C.name As TableName,
C.id As TableObjectId,
A.name As ColumnName,
A.colid As ColumnObjectId,
A.[length] As ColumnLength,
B.name As ColumnDataType,
ISNULL(D.[text],'') AS DefaultValue,
ISNULL(E.name,'') As PropertyName,
ISNULL(E.value,'') As PropertyValue,
COLUMNPROPERTY(A.id,A.name, 'AllowsNULL') AS AllowsNull,
COLUMNPROPERTY(A.id,A.name, 'IsCursorType') AS IsCursorType,
COLUMNPROPERTY(A.id,A.name, 'IsIdentity') AS IsIdentity,
(Select Count(1) From
sysobjects
INNER JOIN sysindexes ON sysobjects.parent_obj=sysindexes.id AND sysobjects.name=sysindexes.name
INNER JOIN sysindexkeys ON sysindexes.id=sysindexkeys.id AND sysindexes.indid=sysindexkeys.indid
Where sysobjects.xtype='PK' AND sysobjects.parent_obj=A.id AND sysindexkeys.colid=A.colid) AS IsPrimaryKey
From
dbo.syscolumns A
INNER JOIN dbo.systypes B ON B.xusertype=A.xtype
INNER JOIN dbo.sysobjects C ON C.id=A.id AND C.xtype IN ('U','V') AND C.name not in ('dtproperties','sysdiagrams')
LEFT JOIN dbo.syscomments D ON A.cdefault = D.id
LEFT JOIN sys.extended_properties E ON E.major_id=A.id AND E.minor_id=A.colid order by A.colid 查询约束脚本:
SELECT
b.rkeyid AS MasterTableObjectId,
object_name(b.rkeyid) AS MasterTableName,
b.rkey As MasterColumnObjectId,
(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid) AS MasterColumnName,
b.fkeyid AS ForeignTableObjectId,
object_name(b.fkeyid) AS ForeignTableName,
b.fkey AS ForeignColumnObjectId,
(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid) As ForeignColumnName,
ObjectProperty(a.id,'CnstIsUpdateCascade') AS UpdateCascade,
ObjectProperty(a.id,'CnstIsDeleteCascade') AS DeleteCascade
FROM sysobjects a
join sysforeignkeys b on a.id=b.constid
join sysobjects c on a.parent_obj=c.id
WHERE a.xtype='F' AND c.xtype='U'

参考:

http://blog.ueren.com/?tag=sysobjects

MSSQL中数据库对象类型解释的更多相关文章

  1. JavaScript中判断对象类型方法大全1

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  2. JavaScript中判断对象类型的种种方法

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  3. jquery中关于对象类型的判断原理

    class2type[ core_toString.call(obj) ] jquery中关于对象类型的判断原理 jquery源码中关于类型判断的工具函数为type,调用方法为$.type()或者jQ ...

  4. 转 JavaScript中判断对象类型的种种方法

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  5. 获得函数返回值类型、参数tuple、成员函数指针中的对象类型

    //function_traits.h,获得函数返回值类型.参数tuple.成员函数指针中的对象类型 //参考https://github.com/qicosmos/cosmos/blob/maste ...

  6. js中判断对象类型的几种方法

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  7. Python中的对象类型的初步介绍

    一:介绍 1.为什么使用内置对象 对象类型是语言的一个部分 内置对象构成了每个python程序的核心部分 2.核心数据类型 数字 字符串 列表 字典 元组 文件 集合 其他类型 编程单元类型 与实现相 ...

  8. JavaScript中判断对象类型方法大全2

    在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, Boolean, Number和String:复杂数据类型是Object,Object ...

  9. .NET中常见对象类型

    .NET中六大内置对象:1.Response    2.Request   3.Session   4.Appliction  5.Server  6.Cookie System.Web.HttpCo ...

随机推荐

  1. PHP面向对象深入研究之【继承】,减少代码重复

    继承 先看两个类 <?php class CdProduct { public $playLength; // 播放时间 public $title; public $producerMainN ...

  2. 接口规范,js处理json,php返回给ajax的数据格式

    ajax异步获取php数据. 一般php会在后台处理请求,并返回结果给前端. 必须是echo的方式,不然ajax获取不到. 返回的类型包括,字符串,数字,json. 最常用的就是json. 返回后,前 ...

  3. 获取access_token错误 40164

    没有添加IP白名单

  4. PL/SQL 训练05--游标

    --隐式游标--通过一个简单的SELECT ...INTO 语句提取一行数据,并放在一个局部变量中,最简单获取数据的途径 --显示游标--可以在声明单元明确的声明一个查询,这样可以在一个或多个程序中打 ...

  5. RPC框架简易实现

           RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些 ...

  6. php浏览器端调试输出方法

     1.利用js打印到浏览器控制台 <?php function console_log($data) {     if (is_array($data) || is_object($data)) ...

  7. BurpSuite系列(十一)----Project options模块(项目选择)

    一.简介 Project options主要用来对Project的一些设置. 二.模块说明 Project options主要由五个模块组成: 1.Connections 连接2.HTTP3.SSL4 ...

  8. 虚拟机之 Wordpress博客搭建

    WordPress博客需要LAMP环境,---  LAMP 官网:https://cn.wordpress.org/ wordpress-4.4.1版本环境要求是: php 5.2.4或以上 mysq ...

  9. HTML中 .clearfix:after的使用

    将一个<div>标签随着内容的增加而增加

  10. Lucene Payload 的研究与应用

    Payload (元数据) 诞生于 Lucene 的2.2 版本,它是在 Lucene 2.1 索引文件格式的基础上扩展而来,提供了一种可以灵活配置的高级索引技术,在某些特定应用场景下能优化基于 Lu ...