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

最新文章

  1. C#如何在DataGridViewCell中自定义脚本编辑器
  2. SharePoint Server 2016 IT Preview 先睹为快
  3. Android 脚本替换PackageName
  4. 20160126.CCPP体系详解(0005天)
  5. Ubuntu16.04的图形化界面无法启动问题
  6. C#/VB.NET 给Word文档添加/撤销书签
  7. Linux串口通信之termios结构体说明
  8. Classnotfoundexception 与 noClassDelfaultError的区别
  9. 使用Visual Studio 2017 C++17模块(module)特性
  10. 关于各种O,DO/BO/DTO/VO/AO/PO
  11. CSS有哪些属性是可以继承的?
  12. Lr-代理录制
  13. ros6.0的包转发图解
  14. “==”和equals方法究竟有什么区别?
  15. 使用org.apache.poi导出Excel表格
  16. gulp自动添加版本号过程中的一些要点记录
  17. cocos2d-x学习记录3——CCTouch触摸响应
  18. [arc076F]Exhausted?
  19. LSTM及其变种及其克服梯度消失
  20. 微信小程序UI------实现携程首页顶部的界面(弹性布局)

热门文章

  1. C++11 类的六个默认函数及其使用
  2. C# winform开发
  3. Java面向对象-static关键字、静态方法与普通方法、静态成员变量
  4. 一.volatile关键字
  5. C# RSA的加解密与签名验证
  6. libevent网络编程汇总
  7. django-model之Q查询补充
  8. 简单的so修改
  9. go语言 robfig/cron包 实现定时 调用
  10. PHP自动加载配置ArrayAccess类