根据表名生成表结构 含 主键

----------------------------------------
-- 根据表名生成表结构 含 主键
----------------------------------------
declare @TableName varchar(255)
set @TableName = ‘bao_color‘ --‘company‘
----------------------------------------
declare @str varchar(max)         
set @str = ‘‘         
select @str = @str + char(9) +‘,[‘ + cols.name + ‘] ‘       
+ type.name   
+ ( case when cols.xtype in (165,167,173,175,231,239)        
      then ‘(‘+ convert(varchar(10) , cols.prec) + ‘)‘          
      when cols.xtype in (106,108)         
   then ‘(‘+ convert(varchar(10) , cols.prec)+‘ , ‘ + convert(varchar(10) ,cols.scale)+ ‘)‘          
       else ‘‘ end )     
+ case when cols.isnullable = 1 then ‘‘ else ‘ not null ‘ end          
+ char(13) + char(10)          
from syscolumns cols        
inner join systypes type        
on cols.xtype = type.xtype and cols.xtype = type.xusertype         
where cols.id = (select id from sysobjects where name = @TableName)         
       
 Declare @objectid int , @pkstr varchar(max)
 Set @objectid=object_id(@TableName)
 set @pkstr = ‘‘
 Select   @pkstr = @pkstr +  col_name(@objectid,colid)  + ‘ ASC,‘
 From  sysobjects         as o
 Inner Join sysindexes    as i On i.name=o.name
 Inner Join sysindexkeys  as k On k.indid=i.indid
 Where  o.xtype = ‘PK‘ and [email protected] and [email protected]

set @pkstr = ISNULL(@pkstr ,‘‘)

set @pkstr = case when @pkstr = ‘‘ then ‘‘ else SUBSTRING(@pkstr,1, LEN(@pkstr)-1) end

set @str = ‘create table dbo.‘ + @TableName + ‘(‘+ char(13) + char(10) + char(9)
        +substring(@str,3,len(@str)-1) + char(13) + char(10)
        + case when @pkstr=‘‘ then ‘‘
        else  ‘    PRIMARY KEY CLUSTERED     ( ‘+ char(13) + char(10)
                 + char(9) ++ @pkstr + char(13) + char(10)
                 + char(9) ++ ‘)ON [PRIMARY]‘+ char(13) + char(10)
        end
        + ‘)‘         
       
print @str

时间: 2024-10-28 23:34:37

根据表名生成表结构 含 主键的相关文章

通过 jdbc 分析数据库中的表结构和主键外键

文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hibernate 是 ORM 框架,他是有能力根据实体生成数据库表的.我们在单元测试的时候用到了 dbUnit ,dbUnit 可以帮助我们在测试前把数据库的测试数据准备好,然后我们就利用现成的数据库环境测试,测试完成后需将数据库中的所有数据清除(为了不影响其他的单元测试),然后接着下一个测试.虽然已经

oracle中查看当前用户的表结构、主键、索引

1.查询表的所有列及其属性 select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表 2.查找表的所有索引(包括索引名,类型,构成列) select t.*,i.index_type from user_ind_columns t,user

jdbc 得到表结构、主键

jdbc 得到表结构.主键 标签: jdbctablenullschema数据库mysql 2012-02-16 22:13 11889人阅读 评论(0) 收藏 举报  分类: Java(71)  假设有个con DatabaseMetaData dbmd = con.getMetaData(); rs = dbmd.getColumns(con.getCatalog(), schema, tableName, null); rs.getString(DATA_TYPE) Java.sql.Ty

删除指定表的所有索引,包括主键索引,唯一索引和普通索引 ,适用于sql server 2005,

原文:删除指定表的所有索引,包括主键索引,唯一索引和普通索引 ,适用于sql server 2005, --删除指定表中所有索引 --用法:declare @tableName varchar(100) --set @tableName='表名' --表名 ,根据实际情况替换 --exec sp_dropindex @tableName if exists(select 1 from sysobjects where id = object_id('dropindex') and xtype =

oracle看到用户的所有表名、表睐、字段名称、现场的目光、是空的、字段类型

--oracle看到用户的所有表名.表睐.字段名称.现场的目光.是空的.字段类型 select distinct TABLE_COLUMN.*, TABLE_NALLABLE.DATA_TYPE, TABLE_NALLABLE.NULLABLE from (select distinct utc.table_name table_name, utc.comments table_comments, ucc.column_name column_name, ucc.comments column_

【翻译自mos文章】在不使用par file的情况下,export or import 含有大小写表名的表

在不使用par file的情况下,export or import 含有大小写表名的表 参考原文: How to Export or Import Case Sensitive Tables Without Using a Par File (Doc ID 1622134.1)1 适用于: Oracle Database - Enterprise Edition - Version 10.2.0.1 to 11.2.0.4 [Release 10.2 to 11.2] Information i

向Mysql主键自增长表中添加数据并返回主键

表level,其主键为lid 1.select max(id) from table 查询语句:SELECT MAX(lid) FROM LEVEL 返回插入主键 2.select LAST_INSERT_ID(id) from table 查询语句:SELECT LAST_INSERT_ID(lid) FROM LEVEL; 返回主键列表,最后一个值为插入主键 3.select @@identity from table 查询语句:SELECT @@identity FROM level 返回

【Oracle】【18】获取数据库当前用户下所有表名和表名的注释

SELECT A.TABLE_NAME, B.COMMENTS FROM USER_TABLES A, USER_TAB_COMMENTS B WHERE A.TABLE_NAME = B.TABLE_NAME ORDER BY TABLE_NAME 参考博客: 获取oracle数据库当前用户下所有表名和表名的注释 - 尹飞飞 - ITeye博客https://yinfeifei.iteye.com/blog/751858 原文地址:https://www.cnblogs.com/huashen

oracle 中查询当前用户可以看到的表名、表对应的所有字段 原

转自:https://my.oschina.net/u/3783799/blog/2870207 1.oracle 查询当前用户下的表名,表注释 select t.table_name, f.comments  from user_tables t inner join user_tab_comments f    on t.table_name = f.table_name 2.oracle 查询某表的所有字段,字段注释,字段类型 SELECT a.TABLE_NAME, a.COLUMN_N