1. //读取数据库中所有的数据库
  1. USE MASTER
  2. DECLARE @is_policy_automation_enabled bit
  3. SET @is_policy_automation_enabled = (SELECT CONVERT(bit, current_value) FROM msdb.dbo.syspolicy_configuration WHERE name = 'Enabled')
  4. SELECT
  5. dtb.name AS [Database_Name],
  6. 'Server[@Name=' + quotename(CAST(serverproperty(N'Servername') AS sysname),'''') + ']' + '/Database[@Name=' + quotename(dtb.name,'''') + ']' AS [Database_Urn],
  7. case when 1=@is_policy_automation_enabled and exists (select * from msdb.dbo.syspolicy_system_health_state where target_query_expression_with_id like 'Server'+ '/Database\[@ID=' + convert(nvarchar(20),dtb.database_id) + '\]%' ESCAPE '\') then 1 else 0 end AS [Database_PolicyHealthState],
  8. dtb.recovery_model AS [Database_RecoveryModel],
  9. suser_sname(dtb.owner_sid) AS [Database_Owner],
  10. case
  11. when DATABASEPROPERTY(dtb.name,'IsShutDown') is null then 0x200
  12. else 0
  13. end |
  14. case
  15. when 1 = dtb.is_in_standby then 0x40
  16. else 0
  17. end |
  18. case
  19. when 1 = dtb.is_cleanly_shutdown then 0x80
  20. else 0
  21. end |
  22. case dtb.state
  23. when 1 then 0x2
  24. when 2 then 0x8
  25. when 3 then 0x4
  26. when 4 then 0x10
  27. when 5 then 0x100
  28. when 6 then 0x20
  29. else 1
  30. end
  31. AS [Database_Status],
  32. dtb.compatibility_level AS [Database_CompatibilityLevel],
  33. ISNULL(dmi.mirroring_role,0) AS [Database_MirroringRole],
  34. ISNULL(dmi.mirroring_state + 1, 0) AS [Database_MirroringStatus],
  35. dtb.recovery_model AS [RecoveryModel],
  36. dtb.user_access AS [UserAccess],
  37. dtb.is_read_only AS [ReadOnly],
  38. dtb.name AS [Database_DatabaseName2]
  39. FROM
  40. master.sys.databases AS dtb
  41. LEFT OUTER JOIN sys.database_mirroring AS dmi ON dmi.database_id = dtb.database_id
  42.  
  43. WHERE
  44. (CAST(case when dtb.name in ('master','model','msdb','tempdb') then 1 else dtb.is_distributor end AS bit)=0)
  45. ORDER BY
  46. [Database_Name] ASC
  1. //读取数据库中所有的表
  1. USE [Nop]
  2. DECLARE @is_policy_automation_enabled bit
  3. SET @is_policy_automation_enabled = (SELECT CONVERT(bit, current_value)
  4. FROM msdb.dbo.syspolicy_configuration
  5. WHERE name = 'Enabled')
  6. SELECT
  7. tbl.name AS [Name],
  8. SCHEMA_NAME(tbl.schema_id) AS [Schema],
  9. 'Server[@Name=' + quotename(CAST(
  10. serverproperty(N'Servername')
  11. AS sysname),'''') + ']' + '/Database[@Name=' + quotename(db_name(),'''') + ']' + '/Table[@Name=' + quotename(tbl.name,'''') + ' and @Schema=' + quotename(SCHEMA_NAME(tbl.schema_id),'''') + ']' AS [Urn],
  12. case when 1=@is_policy_automation_enabled and exists (select * from msdb.dbo.syspolicy_system_health_state where target_query_expression_with_id like 'Server' + '/Database\[@ID=' + convert(nvarchar(20),dtb.database_id) + '\]'+ '/Table\[@ID=' + convert(nvarchar(20),tbl.object_id) + '\]%' ESCAPE '\') then 1 else 0 end AS [PolicyHealthState],
  13. tbl.create_date AS [CreateDate],
  14. CAST(
  15. case
  16. when tbl.is_ms_shipped = 1 then 1
  17. when (
  18. select
  19. major_id
  20. from
  21. sys.extended_properties
  22. where
  23. major_id = tbl.object_id and
  24. minor_id = 0 and
  25. class = 1 and
  26. name = N'microsoft_database_tools_support')
  27. is not null then 1
  28. else 0
  29. end
  30. AS bit) AS [IsSystemObject]
  31. FROM
  32. master.sys.databases AS dtb,
  33. sys.tables AS tbl
  34. WHERE
  35. (CAST(
  36. case
  37. when tbl.is_ms_shipped = 1 then 1
  38. when (
  39. select
  40. major_id
  41. from
  42. sys.extended_properties
  43. where
  44. major_id = tbl.object_id and
  45. minor_id = 0 and
  46. class = 1 and
  47. name = N'microsoft_database_tools_support')
  48. is not null then 1
  49. else 0
  50. end
  51. AS bit)=0)and((db_name()='Nop')and(dtb.name=db_name()))
  52. ORDER BY
  53. [Schema] ASC,[Name] ASC

  1. //读取数据库表中的字段信息
  1. USE [Nop]
  2. SELECT
  3. clmns.is_identity AS IsIdentity,
  4. clmns.name AS [Name],
  5. 'Server[@Name=' + quotename(CAST(
  6. serverproperty(N'Servername')
  7. AS sysname),'''') + ']' + '/Database[@Name=' + quotename(db_name(),'''') + ']' + '/Table[@Name=' + quotename(tbl.name,'''') + ' and @Schema=' + quotename(SCHEMA_NAME(tbl.schema_id),'''') + ']' + '/Column[@Name=' + quotename(clmns.name,'''') + ']' AS [Urn],
  8. CAST(ISNULL(cik.index_column_id, 0) AS bit) AS [InPrimaryKey],
  9. CAST(ISNULL((select TOP 1 1 from sys.foreign_key_columns AS colfk where colfk.parent_column_id = clmns.column_id and colfk.parent_object_id = clmns.object_id), 0) AS bit) AS [IsForeignKey],
  10. usrt.name AS [DataType],
  11. ISNULL(baset.name, N'') AS [SystemType],
  12. CAST(CASE WHEN baset.name IN (N'nchar', N'nvarchar') AND clmns.max_length <> -1 THEN clmns.max_length/2 ELSE clmns.max_length END AS int) AS [Length],
  13. CAST(clmns.precision AS int) AS [NumericPrecision],
  14. CAST(clmns.scale AS int) AS [NumericScale],
  15. clmns.is_nullable AS [Nullable],
  16. clmns.is_computed AS [Computed],
  17. ISNULL(s2clmns.name, N'') AS [XmlSchemaNamespaceSchema],
  18. ISNULL(xscclmns.name, N'') AS [XmlSchemaNamespace],
  19. ISNULL( (case clmns.is_xml_document when 1 then 2 else 1 end), 0) AS [XmlDocumentConstraint],
  20. CAST(clmns.is_sparse AS bit) AS [IsSparse],
  21. CAST(clmns.is_column_set AS bit) AS [IsColumnSet],
  22. isnull(comments.text,'') as DefaultValue,
  23. isnull(properties.[value],'') as FieldRemark
  24. FROM
  25. sys.tables AS tbl
  26. INNER JOIN sys.all_columns AS clmns ON clmns.object_id=tbl.object_id
  27. LEFT OUTER JOIN sys.indexes AS ik ON ik.object_id = clmns.object_id and 1=ik.is_primary_key
  28. LEFT OUTER JOIN sys.index_columns AS cik ON cik.index_id = ik.index_id and cik.column_id = clmns.column_id and cik.object_id = clmns.object_id and 0 = cik.is_included_column
  29. LEFT OUTER JOIN sys.types AS usrt ON usrt.user_type_id = clmns.user_type_id
  30. LEFT OUTER JOIN sys.types AS baset ON (baset.user_type_id = clmns.system_type_id and baset.user_type_id = baset.system_type_id) or ((baset.system_type_id = clmns.system_type_id) and (baset.user_type_id = clmns.user_type_id) and (baset.is_user_defined = 0) and (baset.is_assembly_type = 1))
  31. LEFT OUTER JOIN sys.xml_schema_collections AS xscclmns ON xscclmns.xml_collection_id = clmns.xml_collection_id
  32. LEFT OUTER JOIN sys.schemas AS s2clmns ON s2clmns.schema_id = xscclmns.schema_id
  33. LEFT OUTER JOIN syscomments AS comments on clmns.default_object_id=comments.id
  34. LEFT OUTER JOIN sys.extended_properties AS properties on clmns.object_id=properties.major_id AND clmns.column_id = properties.minor_id
  35.  
  36. WHERE
  37. (tbl.name='AclRecord' and SCHEMA_NAME(tbl.schema_id)='dbo')
  38. ORDER BY
  39. clmns.column_id ASC

Oracle数据库Scheme

  1. 1,连接数据库字符串
  1. string connStr = "Data Source='" + Utility.Database + "';uid='" + Utility.Username + "';pwd='" + Utility.Password + "';";
  1. 2,通过注册表获取oracle实例名方法;
  1. public static string[] GetOracleTnsNames()
  2. {
  3. // 查询注册表,获取oracle服务文件路径
  4. RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("ORACLE\\HOME0");
  5. if (key == null)
  6. {
  7. key = Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("ORACLE\\KEY_OraClient11g_home1");
  8. }
  9. if (key == null)
  10. {
  11. key = Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("ORACLE\\KEY_OraDb11g_home1");
  12. }
  13. if (key == null)
  14. return null;
  15. string home = (string)key.GetValue("ORACLE_HOME");
  16. string file = home + @"\network\ADMIN\tnsnames.ora";
  17.  
  18. // 解析文件
  19. string line;
  20.  
  21. ArrayList arr = new ArrayList();
  22. StreamReader sr = new StreamReader(file);
  23. while ((line = sr.ReadLine()) != null)
  24. {
  25. line = line.Trim();
  26. if (line != "")
  27. {
  28. char c = line[];
  29. if (c >= 'A' && c <= 'z')
  30. {
  31. if(line.IndexOf('=')>)
  32. arr.Add(line.Substring(, line.IndexOf('=')).Trim());
  33. }
  34. }
  35. }
  36. sr.Close();
  37. // 返回字符串数组
  38. return (string[])arr.ToArray(typeof(string));
  39. }
  1.  

3,读取所有表

  1. select table_name from user_tables order by table_name;

4,读取表字段和类型信息

  1. select 0 Status,
  2. a.Column_Name,
  3. a.nullable as Nullable,
  4. a.data_default as Defaults,
  5. a.data_type || '(' || a.data_length || ')' as Column_Type,
  6. b.comments as Comments,
  7. decode(c.column_name, null, null, 'PRI') as keyflag
  8. from user_tab_columns a,
  9. user_col_comments b,
  10. (select c.table_name, d.column_name
  11. from user_constraints c, user_cons_columns d
  12. where c.constraint_name = d.constraint_name
  13. and c.constraint_type = 'P') c
  14. where a.table_name = b.table_name(+)
  15. and a.column_name = b.column_name(+)
  16. and a.table_name = c.table_name(+)
  17. and a.column_name = c.column_name(+)
  18. and a.table_name = 'WWW' //www是具体的表名
  19. order by a.column_id
  1. 有了这些就能根据表结构来生成一些代码了。
  2.  

sqlserver数据库 Schema的更多相关文章

  1. 采用Hibernate框架的研发平台如何能够真正兼容Oracle和sqlServer数据库

    都说Hibernate框架的使用可以很容易的让你的研发平台支持多种不同类型的数据库,但实践表明,这里的“容易”,是相对的. 想让研发平台支持多种数据库,并不是一件简单的事,也可以这么说:并不是只要使用 ...

  2. PowerDesigner从SqlServer数据库中导入实体模型

    PowerDesigner从SqlServer数据库中导入实体模型 时间 2013-06-28 10:26:34 CSDN博客 原文  http://blog.csdn.net/sxycxwb/art ...

  3. 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor

    批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11 之前写过一篇文章,使用redgate公司的SQL PROMPT工具,但是不太方便 SQLPRO ...

  4. JAVA使用JDBC技术操作SqlServer数据库执行存储过程

    Java使用JDBC技术操作SqlServer数据库执行存储过程: 1.新建SQLSERVER数据库:java_conn_test 2.新建表:tb_User 3.分别新建三个存储过程: 1>带 ...

  5. SQLServer数据库监控代码

    SQLServer数据库监控代码: creation_time, total_worker_time, last_worker_time, max_worker_time, min_worker_ti ...

  6. SQLServer数据库转换成MySQL数据库

    由于工作需要,系统原先的SQLServer数据库要转换成MYSQL数据库,所以这两天就一直在查阅这方面的资料.最开始,我尝试从SQLServer中导出SQL文件,然后导入到MYSQL数据库中,发现报错 ...

  7. 数据库schema设计与优化

    原文地址 1. 前言 对于数据库而言,在日常开发中我们主要的关注点有两块,一个是schema的结构设计,另一个就是索引的优化,这两块是影响我们最终系统结构和性能的关键部分,自然也是我们花费精力最多的部 ...

  8. ASP.net分别连接SQLserver数据库与连接Access数据库精英版

    -------------------------连接access2003 字符串------------------------- Provider=Microsoft.Jet.OLEDB.4.0; ...

  9. (转)对SQLSERVER数据库事务日志的疑问

    本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/06/10/3130856.html 对SQLSERVER数据库事务日志的疑问 摸不透SQLS ...

随机推荐

  1. Ajax校验

    一.Ajax简介 AJAX即(Asynchronous JavaScript and Xml)(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. Ajax的关键元素包括以 ...

  2. <九>JDBC_获取插入记录的主键值

  3. [转载] Win PE内安装Windows 7原版镜像 / 安装程序无法创建新的系统分区,也无法定位现有的系统分区

    格式化C盘为NTFS格式 解压ISO安装文件中找到BOOT.BOOTMGR和SOURCES这三个文件到C盘根目录下:或者复制BOOT.BOOTMGR,在C盘新建文件夹SOURCES,复制ISO安装文件 ...

  4. Thread-Safe Resource Manager

    http://php.net/manual/en/internals2.memory.tsrm.php When PHP is built with Thread Safety enabled, th ...

  5. lvs源代码分析

    以linux-2.6.21为例. 数据结构介绍: ip_vs_conn 对于某个连接记录其N元组, (client, vserver, rserver) & (address, port) Q ...

  6. WordPress忘记登录密码

    后台的登录密码使用的是md5加密的,有时候会忘记登录密码,那么可以修改数据库,把密码改为你知道的字符串的md5加密值 如 hello对应的md5加密值为:5d41402abc4b2a76b9719d9 ...

  7. h5移动版云胶片系统

    h5移动版云胶片系统. 最近开了一个医疗用的云胶片,可以对图片放大.图片缩小,图片移动,图片调窗,图片切换,图片播放,图片变灰等等功能.如下图:

  8. ubuntu 上安装字体

    http://www.360doc.com/content/11/0901/23/4171006_145128703.shtml http://www.linuxidc.com/Linux/2008- ...

  9. OC编码问题输出中文

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

  10. iOS程序上传流程 2014年9月最新版

    程序上传步骤: 1.登录账户,点击Manage Your Apps 2.点击Add New App 3.注册Bundle ID,点击蓝色的here 4.进入了注册页面,首先要填写App ID的一个描述 ...