查询数据库中的表,返回字段相对应的数据类型!

  • Post author:
  • Post category:其他




上周的时候,项目相关的数据库底层做了一些改动,比如某一张表的一个字段的data type从bit变成int ,牵连着我的code当然也要做一些改动!不巧的是,old version和new version的数据库是并存的,就是说有可能数据库A中的data type依旧是bit, 但是数据库B的data type却被update成了int。这就需要我去查询数据库中的表,返回字段相对应的数据类型喽。



最开始是想直接找一条Sql语句去query,但是找了半天无果!



只好用C# Code去解决!



想法:利用最简单的“select * from [table]”,获取DataReader,这个DataReader中肯定包含了table的filed信息,包括column name,column data type…..





返回的HashTable 对象包含了table的column name(key)和column data type(value)。



但是需要传个Sql语句string进去!



比如Hashtable Override_ListingTable = GetTableDataType(“select top (1) * from [Relevance].Override_Listings”);



接下来要判断DB是old还是new,直接用Override_ListingTable[“fieldName”]就OK了!



当然,要是知道Sql语句直接去query table的字段的data type就更方便了。



版权声明:本文为WriteHappy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。