直接上代码吧:

 1 function GetSQLByTableName(sTableName:string):String;
 2 var
 3   aDataSet:TDataSet;
 4   s:String;
 5   aField:TField;
 6   aFieldList,aFieldDescriptionList:TList<string>;
 7   function GetFieldDescription(sTable,sField:string):String;
 8   var
 9     sSQL:String;
10   begin
11     sSQL:='select sys.extended_properties.value  from sys.extended_properties '
12      +' left join   syscolumns on (syscolumns.colid=sys.extended_properties.minor_id'
13      +' and syscolumns.id=sys.extended_properties.major_id)'
14      +' where syscolumns.name='''+sField+''' and syscolumns.id=object_id('''+sTable+''')';
15
16     Result:=aAccessDB.GetValue(sSQL);
17     //如果没有描述直接取字段名称
18     if Result='' then
19       Result:=sField;
20   end;
21 begin
22   try
23     vSQL:='select * from '+sTableName+' where 1=2';
24     aDataSet:=aAccessDB.GetNewDataSet(vSQL);
25     aFieldList:=TList<string>.Create;
26     aFieldDescriptionList:=TList<string>.Create;
27     for aField in aDataSet.Fields do
28     begin
29        aFieldList.Add(aField.FieldName);
30        aFieldDescriptionList.Add(GetFieldDescription(sTableName,aField.FieldName));
31     end;
32     Result:='select ';
33     for s in aFieldList do
34        Result:=Result+s+' as '+aFieldDescriptionList[aFieldList.IndexOf(s)]+',';
35     Result:=Copy(Result,1,Length(Result)-1)+' from '+sTableName;
36   finally
37     aDataSet.Free;
38     aFieldList.Free;
39     aFieldDescriptionList.Free;
40   end;
41 end;

上面代码在Delphi 2010、SQL Server 2008下调试通过,在SQL Server 2000下注意要使用:

Select o.name AS tableName, c.name AS columnName, p.[value] AS Description
FROM sysproperties p INNER JOIN
sysobjects o ON o.id = p.id INNER JOIN
syscolumns c ON p.id = c.id AND p.smallid = c.colid
Where (p.name = 'MS_Description') AND (c.name = 'tablename') AND (o.name = 'fieldname')
orDER BY o.name

即2000和2005之后系统表名称改变了

转载于:https://www.cnblogs.com/GarfieldTom/archive/2012/08/01/2617924.html

在Delphi中根据SQL Server表名和表描述生成SQL语句相关推荐

  1. 数据库SQL Server 如何将数据库表名等前缀转换成dbo

    数据库SQL Server 如何将数据库表名前缀,框架名前缀,视图前缀,存储过程前缀转换成dbo exec sp_msforeachtable 'sp_changeobjectowner ''?'', ...

  2. sql server如何直接在表中修改数据

    之前做项目一直用的是mysql和oracle,最近做的项目中客户使用的是sql server,之前不了解sql server,今天成功安装并且导入了数据库脚本.在做具体操作的时候,有些数据只需很小的修 ...

  3. c#中导入excel至sql server时出现“外部表不是预期格式”

    导入excel至sql server时出现"外部表不是预期格式"的排查: 首先要注意有两个字符串,一个用于初始化SqlConnection,一个用于初始化OleDbConnecti ...

  4. sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系

    原创链接:https://www.cnblogs.com/lxf1117/p/6762315.html sql server登录名.服务器角色.数据库用户.数据库角色.架构区别联系 1.一个数据库用户 ...

  5. 查看SQL Server被锁的表以及如何解锁

    锁定数据库的一个表的区别 SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除 SELECT * FROM table WITH (TABLOCK ...

  6. SQL Server登录名,用户和安全标识符(SID)

    抽象 (Abstract) Logins and Users are basic security concepts in SQL Server. They are often, and incorr ...

  7. 用友U8的SQL SERVER 数据库结构说明表

    用友U8的SQL SERVER 数据库结构说明表       在帐套中的两个表,一个表是RPT_GRPDEF,存放帐套中重要的表名及相关说明:另一个是RPT_ITMDEF,存放的是主要表中的相关字段说 ...

  8. SQL Server 2005 术语词汇表

    术语 定义 ActiveX 数据对象 (ActiveX Data Objects) 一种易于使用的应用程序编程接口 (API),用于封装 OLE DB 以在诸如 Visual Basic.Visual ...

  9. SQL Server 数据库之单表查询

    单表查询 1. 概述 2. 单表查询命令 2. 无条件查询与条件查询 2.1 无条件查询 2.2 条件查询 3. 聚集函数 4. 分组查询 5. 排序查询 1. 概述 单表查询是只对一个数据表进行查询 ...

最新文章

  1. webpack优化相关操作
  2. Python-类的学习
  3. Sea Battle
  4. 阿里云可以外链mysql_案例详细说明阿里云下设置MySQL远程连接步骤
  5. 使用ABAP SAT工具分析SAP OData service实现明细
  6. random_state的值如何选_同样是防晒衣,单价几十和几百块有什么不同?选防晒衣认准这4点...
  7. Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) F. Bits And Pieces sosdp预处理超集
  8. 第一次马拉松_成为数据科学家是一场马拉松而不是短跑
  9. ListView排序并隔色显示
  10. Qt工作笔记-使用hiredis连接及查询Redis
  11. Android 应用开发(40)---TextView(文本框)详解
  12. clion远程调试linux内核,Clion + 树莓派/Ubuntu 远程调试
  13. Django 模板标签 换行导致异常的处理 linebreaksbr
  14. laravel知识点: 了解应用环境
  15. RedHat 救援模式下排错
  16. Atitit  代理与分销系统(1)  子代理 充值总额功能设计概览 sum() groubpy subagt
  17. 用python处理蛋白质互作信息
  18. 关于boost和loki的智能指针
  19. 如何在比赛和项目中培养一个好的探索性分析(EDA)思维 —— 翻译自kaggle一位有趣的分享者
  20. Part3-4-1 搭建自己的SSR

热门文章

  1. 编程软件python t-Python 3.7 64位下载
  2. python贴吧发帖脚本-分享用Python写的99收抢单小脚本,仅供学习
  3. python语言必背代码-好用到哭!请记住这20段Python代码
  4. python中文件读写位置的作用-Python中文件的读写
  5. python爬虫数据分析可以做什么-python爬虫爬取的数据可以做什么
  6. python管理系统-员工管理系统源程序(python实现)
  7. python一般用什么编译器-Python常用的编辑器有哪些?老男孩Python
  8. 零基础python入门书籍-浅谈零基础自学python入门书
  9. python导入excel数据-Python数据处理之导入导出excel数据
  10. python与excel的关系-使用python对excle和json互相转换的示例