获取Table的创建语句

-------------------------sql脚本---------------------------

SELECT (CASE WHEN a.colorder=1 THEN d.name ELSE ‘‘‘‘ END) N‘表名‘, a.colorder N‘字段序号‘, a.name N‘字段名‘,
(CASE WHEN COLUMNPROPERTY( a.id,a.name,‘IsIdentity‘)=1 THEN ‘√‘ELSE ‘‘ END) N‘标识‘,
(CASE WHEN (SELECT COUNT(*) FROM sysobjects WHERE (name in
(SELECT name FROM sysindexes WHERE (id = a.id) AND (indid in
(SELECT indid FROM sysindexkeys WHERE (id = a.id) AND (colid in
(SELECT colid FROM syscolumns WHERE (id = a.id) AND (name = a.name))))))) AND
(xtype = ‘PK‘))>0 THEN ‘√‘ ELSE ‘‘ END) N‘主键‘, b.name N‘类型‘, a.length N‘占用字节数‘,
COLUMNPROPERTY(a.id,a.name,‘PRECISION‘) AS N‘长度‘, ISNULL(COLUMNPROPERTY(a.id,a.name,‘Scale‘),0) AS N‘小数位数‘,
(CASE WHEN a.isnullable=1 THEN ‘√‘ELSE ‘‘ END) N‘允许空‘, ISNULL(e.text,‘‘) N‘默认值‘,
ISNULL(g.[value],‘‘) AS N‘字段说明‘ FROM syscolumns a  LEFT JOIN systypes b on a.xtype=b.xusertype
INNER JOIN sysobjects d on a.id=d.id AND d.xtype=‘U‘ AND d.name<>‘dtproperties‘
LEFT JOIN syscomments e on a.cdefault=e.id
LEFT JOIN sys.extended_properties g on a.id=g.major_id AND a.colid=g.minor_id
WHERE d.name = ‘Company‘ --要查询的表
ORDER BY object_name(a.id), a.colorder

-----------------------------------------------------------

//--------------------获取Table的创建语句(Delphi方法)---------------------------
function TFrm_main.GetSQLString(TbName:string):string;
var
  sl:TStringList;
  sqlstr,sqlstr2:string;
  colname,coltype,collen,rhtpotlen,isnull,isidentify,IsFlag:string;
begin
  sqlstr2:=‘SELECT (CASE WHEN a.colorder=1 THEN d.name ELSE ‘‘‘‘ END) N‘‘表名‘‘, a.colorder N‘‘字段序号‘‘, a.name N‘‘字段名‘‘, ‘
              +‘(CASE WHEN COLUMNPROPERTY( a.id,a.name,‘‘IsIdentity‘‘)=1 THEN ‘‘√‘‘ELSE ‘‘‘‘ END) N‘‘标识‘‘, ‘
              +‘(CASE WHEN (SELECT COUNT(*) FROM sysobjects WHERE (name in ‘
              +‘(SELECT name FROM sysindexes WHERE (id = a.id) AND (indid in ‘
              +‘(SELECT indid FROM sysindexkeys WHERE (id = a.id) AND (colid in ‘
              +‘(SELECT colid FROM syscolumns WHERE (id = a.id) AND (name = a.name))))))) AND ‘
              +‘(xtype = ‘‘PK‘‘))>0 THEN ‘‘√‘‘ ELSE ‘‘‘‘ END) N‘‘主键‘‘, b.name N‘‘类型‘‘, a.length N‘‘占用字节数‘‘,‘
              +‘COLUMNPROPERTY(a.id,a.name,‘‘PRECISION‘‘) AS N‘‘长度‘‘, ISNULL(COLUMNPROPERTY(a.id,a.name,‘‘Scale‘‘),0) AS N‘‘小数位数‘‘, ‘
              +‘(CASE WHEN a.isnullable=1 THEN ‘‘√‘‘ELSE ‘‘‘‘ END) N‘‘允许空‘‘, ISNULL(e.text,‘‘‘‘) N‘‘默认值‘‘,‘
              +‘ISNULL(g.[value],‘‘‘‘) AS N‘‘字段说明‘‘ FROM syscolumns a  LEFT JOIN systypes b on a.xtype=b.xusertype ‘
              +‘INNER JOIN sysobjects d on a.id=d.id AND d.xtype=‘‘U‘‘ AND d.name<>‘‘dtproperties‘‘‘
              +‘LEFT JOIN syscomments e on a.cdefault=e.id ‘
              +‘LEFT JOIN sys.extended_properties g on a.id=g.major_id AND a.colid=g.minor_id ‘
              +‘WHERE d.name = ‘‘‘+TbName+‘‘‘‘// --要查询的表
              +‘ORDER BY object_name(a.id), a.colorder  ‘;
  with qrytable do
  begin
    Close;
    SQl.Text:=sqlstr2;
    Open;
    sqlstr:=‘Create Table ‘+TbName+‘(‘;
    while not Eof do
    begin
      if sqlstr<>‘Create Table ‘+TbName+‘(‘ then sqlstr:=sqlstr+‘,‘;

colname:=FieldByName(‘字段名‘).AsString;
      coltype:=FieldByName(‘类型‘).AsString;
      collen:=FieldByName(‘长度‘).AsString;
      rhtpotlen:=FieldByName(‘小数位数‘).AsString;
      isnull:=FieldByName(‘允许空‘).AsString;
      isidentify:=FieldByName(‘主键‘).AsString;
      IsFlag:=FieldByName(‘标识‘).AsString;
      sqlstr:=sqlstr+colname+‘ ‘+coltype;
      coltype:=LowerCase(coltype);                //数据类型
      if coltype=‘decimal‘ then
        sqlstr:=sqlstr+‘(‘+collen+‘,‘+rhtpotlen+‘)‘;
      if (coltype=‘binary‘) or (coltype=‘varbinary‘) or (coltype=‘float‘) or (coltype=‘char‘)
         or (coltype=‘nchar‘) or (coltype=‘varchar‘) or (coltype=‘nvarchar‘) then
      begin
        sqlstr:=sqlstr+‘(‘+collen+‘)‘;
      end;
      if isnull=‘‘ then  sqlstr:=sqlstr+‘ not null‘;
      if isidentify<>‘‘ then sqlstr:=sqlstr+‘ Primary Key‘;
      if IsFlag<>‘‘ then sqlstr:=sqlstr+‘ identity(1,1)‘;

Next;
    end;
    sqlstr:=sqlstr+‘)‘;
  end;
  Result:=sqlstr;
end;

获取Table的创建语句

时间: 2024-10-26 05:07:27

获取Table的创建语句的相关文章

Oracle获取数据库中的对象创建语句

使用dbms_metadata.get_ddl()函数可以做到. 实验环境:Oracle 11.2.0.4以获取jingyu用户下的T1表为例: SQL> conn jingyu/jingyu Connected. SQL> select count(1) from t1; COUNT(1) ---------- 100 SQL> select dbms_metadata.get_ddl('TABLE','T1','JINGYU') from dual; DBMS_METADATA.GE

Jqeury获取table当前行与指定列

今天遇到了一个Jqeury获取table当前行与指定列的问题: 大概的实现要求是一个页面中,上面有几个input输入框,下面有一个table,当在输入框中输入内容的时候,点击添加按钮的时候,在下面table中追加对应的代码,同时每行有 编辑.删除的操作.类似下面的页面操作: 下面是addTable(),就是点击按钮之后追加tr的操作 1 function addTable() { 2 ------ 3 //得到每个input的值 4 var goodsClassVar = $("#goodsCl

iBATIS.net获取运行时sql语句

[本文原创,第一次离首页如此之近.发在候选区攒攒rp,管理员看着不合适可以撤下.] 虽然只在iBatis的世界里小打小闹匆匆数月,却历经数次与领导和同事激辩,再通过不懈努力学习和开发积累,楼猪终于被它小巧而不失强大,稳定而不失灵活所折服.作为80后顽固.偏执和nc一族,楼猪一向保守认为自己是美貌与智慧并存的.仗着天资聪慧,在之前的“iBatis.net直接执行sql语句”里曾经公然抱怨iBATIS对sql语句的直接查看灰常的不友好,调试不方便,排除错误非常考验眼神,很重要的一条(甚至应该算是楼猪

table的创建

results为table的行信息 columnNames  是table列名 //创建并初始化table: table =new JTable(results,columNames); //设置table可以自动调整 table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //获取被选中table的行,取出行的内容,监听并将获取的内容执行所设置的动作 更新table的数据

table新增一行并循环获取table内值

简单介绍 table新增一行,并获取table标签中所有td的值,通过js将其组装成json格式传给后端存储数据库. 实际操作 1.首先需要在页面html创建talbe标签内容,定义th标题 2.给包含td的tr增加一个属性,例如:type="subdata" 3.在table标签下增加一个按钮,并给其增加一个click事件 html内容 4.在js文件中进行click事件内容的编写,按照th标题数量进行td的拼接,也增加了一个删除行功能 js内容 5.js使用each来进行table

oracle中查询用户表/索引/视图创建语句

不多说,直接上干货 1.查询当前用户下表的创建语句 select dbms_metadata.get_ddl('TABLE','ux_future') from dual; 2.查询其他用户下表的创建语句 select dbms_metadata.get_ddl('TABLE','ux_future','Admin') from dual; 3.查询当前用户下索引的创建语句 select dbms_metadata.get_ddl('INDEX','ux_future') from dual;

selenium 获取table数据

public class Table { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub WebDriver driver = ExplorerBase.IESetting(); String url = "http://zs.njust.edu.cn/newzs/news/zhxw/20140710151805.htm"; driver.m

关于Jquery获取Table中td内的内容

$(this).children().eq(1).text()获取的是显示的值$(this).children().eq(1).html()获取的是<td></td>之间的所有内容$('.trSelected',grid).find("td").eq(7).text();获取的是选中的某行的内容 遍历表<table id="gird"..... $("#grid tr").each(function() {     

获取table表格指定列的所有单元格的内容

获取table表格指定列的所有单元格的内容:本章节介绍一下如何获取表格指定列的所有单元格的内容,这可能在一些应用或者说扩展应用中会需要.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <titl