zoukankan      html  css  js  c++  java
  • MSSQL获取表结构通用方法

     1 #region 通用方法
     2 
     3         ///<summary>
     4         ///读取错误信息
     5         ///</summary>
     6         public string ErrorMessage { get; private set; }
     7 
     8         /// <summary>
     9         /// 获取数据库中的表清单
    10         /// </summary>
    11         private DataTable GetTableNameList
    12         {
    13             get { return SqlDatabase.OperateData("SELECT [Name] FROM SysObjects Where XType='U' and name <> N'sysdiagrams'  ORDER BY [Name]"); }
    14         }
    15 
    16         /// <summary>
    17         /// 获取数据库中的表清单和字段清单
    18         /// </summary>
    19         private DataTable GetTableNameAndColumnList
    20         {
    21             get
    22             {
    23                 //频繁进行字符串拼接操作的时候推荐使用StringBuilder,因为它提供更优秀的性能
    24                 var strSql = new StringBuilder();
    25                 strSql.Append("SELECT     [Name],STUFF((SELECT ',' + CAST( '['+COLUMN_NAME+']' as varchar(50)) ");
    26                 strSql.Append("FROM         INFORMATION_SCHEMA.COLUMNS  where (TABLE_NAME = [Name])  FOR XML PATH('')),1,1,'') as ColumnList ");
    27                 strSql.Append("FROM         SysObjects ");
    28                 strSql.Append("Where XType='U' and name <> N'sysdiagrams' ORDER BY [Name] ");
    29                 return SqlDatabase.OperateData(strSql.ToString());
    30             }
    31         }
    32 
    33         /// <summary>
    34         /// 获取数据库中的表清单和字段清单
    35         /// </summary>
    36         /// <param name="strTableList">表清单</param>
    37         /// <returns></returns>
    38         private DataTable GetTableNameAndColumnsToInsert(string strTableList)
    39         {
    40 
    41                 //频繁进行字符串拼接操作的时候推荐使用StringBuilder,因为它提供更优秀的性能
    42                 var strSql = new StringBuilder();
    43                 strSql.Append("SELECT     [Name],STUFF((SELECT ',' + CAST( '['+COLUMN_NAME+']' as varchar(200)) ");
    44                 strSql.Append("FROM         INFORMATION_SCHEMA.COLUMNS  where (TABLE_NAME = [Name])  FOR XML PATH('')),1,1,'') as ColumnList ");
    45                 strSql.Append("FROM         SysObjects ");
    46                 strSql.Append(string.Format("Where XType='U' and [Name] <> N'sysdiagrams' and ([Name] in ({0}) ) ORDER BY [Name] ", strTableList));
    47                 return SqlDatabase.OperateData(strSql.ToString());
    48             
    49         }
    50 
    51         /// <summary>
    52         /// 获取数据库中的表清单和字段清单
    53         /// </summary>
    54         /// <param name="strTableList">表清单</param>
    55         /// <returns></returns>
    56         private DataTable GetTableNameAndColumnsToUpdate(string strTableList)
    57         {
    58 
    59             //频繁进行字符串拼接操作的时候推荐使用StringBuilder,因为它提供更优秀的性能
    60             var strSql = new StringBuilder();
    61             strSql.Append("SELECT     [Name],STUFF((SELECT ',' + CAST( '['+COLUMN_NAME+']' + '=SourceTable_1.'+'['+COLUMN_NAME+']'  as varchar(200)) "); 
    62             strSql.Append("FROM         INFORMATION_SCHEMA.COLUMNS  where (TABLE_NAME = [Name]) and COLUMN_NAME <> 'Id'  FOR XML PATH('')),1,1,'') as ColumnList "); 
    63             strSql.Append("FROM         SysObjects ");
    64             strSql.Append(string.Format("Where XType='U' and [Name] <> N'sysdiagrams' and ([Name] in ({0}) ) ORDER BY [Name] ", strTableList));
    65             return SqlDatabase.OperateData(strSql.ToString());
    66 
    67         }
    68 
    69         /// <summary>
    70         /// 获取指定表的列信息
    71         /// </summary>
    72         /// <param name="strTableName">表名</param>
    73         /// <returns></returns>
    74         private DataTable GetTableColumns(string strTableName)
    75         {
    76             //频繁进行字符串拼接操作的时候推荐使用StringBuilder,因为它提供更优秀的性能
    77             var strSql = new StringBuilder();
    78             strSql.Append("SELECT     COLUMN_NAME, ORDINAL_POSITION, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH ");
    79             strSql.Append("FROM         INFORMATION_SCHEMA.COLUMNS ");
    80             strSql.Append("WHERE     (TABLE_NAME = @TableName) ");
    81             var htCols = new Hashtable
    82                              {
    83                                  //表名称
    84                                  {"TableName", strTableName}
    85                              };
    86             return SqlDatabase.OperateData(CommandType.Text, strSql.ToString(), htCols);
    87 
    88         }
    89 
    90         #endregion
  • 相关阅读:
    概率-期望粗学
    2*2右脚相反矩阵构造 2019牛客暑期多校训练营(第八场)
    Codeforces Round #530 (Div. 2)F Cookies (树形dp+线段树)
    E. Arson In Berland Forest(思维,找二维阵列中的矩阵,二分)
    Codeforces Round #523 (Div. 2) Cdp
    凸包
    E
    G. Petya and Graph(经典项目与项目消耗问题)(网络流)
    Educational Codeforces Round 55 (Rated for Div. 2)E
    hdu 3501 Calculation 2 (欧拉函数的扩展)
  • 原文地址:https://www.cnblogs.com/prolion/p/3171700.html
Copyright © 2011-2022 走看看