Sybase:如何使用查询获取表定义?

麦迪

我想在 Sybase Central 中生成创建表脚本。我用过:
SELECT * FROM INFORMATION_SCHEMA.TABLES它以表格格式提供信息,我不需要这种格式和信息。而且我也不想使用 ddlgen 命令。

我在 SQL 中找到了相同的脚本(由@Shnugo回答):

如何使用 SQL 查询在 SQL SERVER 2008 R2 中获取表定义?我搜索了所有地方,但无法获得任何这样的脚本。我不想在 sybase 中创建与 sql 相同的内容,因为我现在正在这样做。

麦迪

好的thanx我得到了答案:有一个程序可以获取数据库中所有表的ddl:

use sybsystemprocs
go

if object_id('dbo.sp_ddl_create_table') is not null
    drop procedure sp_ddl_create_table
    print "Dropping sp_ddl_create_table"
go

create proc sp_ddl_create_table
as

-- Creates the DDL for all the user tables in the
-- current database

select  right('create table ' + so1.name + '(' + '
', 255 * ( abs( sign(sc1.colid - 1) - 1 ) ) )+
        sc1.name + ' ' +
        st1.name + ' ' +
        substring( '(' + rtrim( convert( char, sc1.length ) ) + ') ', 1,
        patindex('%char', st1.name ) * 10 ) +
        substring( '(' + rtrim( convert( char, sc1.prec ) ) + ', ' + rtrim(
        convert( char, sc1.scale ) ) + ') ' , 1, patindex('numeric', st1.name ) * 10 ) +
        substring( 'NOT NULL', ( convert( int, convert( bit,( sc1.status & 8 ) ) ) * 4 ) + 1,
        8 * abs(convert(bit, (sc1.status & 0x80)) - 1 ) ) +
        right('identity ', 9 * convert(bit, (sc1.status & 0x80)) ) +
        right(',', 5 * ( convert(int,sc2.colid) - convert(int,sc1.colid) ) ) +
        right(' )
' + 'go' + '
' + '
', 255 * abs( sign( ( convert(int,sc2.colid) - convert(int,sc1.colid) ) ) -
1 ) )
from    sysobjects so1,
        syscolumns sc1,
        syscolumns sc2,
        systypes st1
where so1.type = 'U'
and sc1.id = so1.id
and st1.usertype = sc1.usertype
and sc2.id = sc1.id
and sc2.colid = (select max(colid)
                from syscolumns
                where id = sc1.id)
order by so1.name, sc1.colid
go

if object_id('dbo.sp_ddl_create_table') is not null
begin
    grant execute on sp_ddl_create_table to public
    print "Created sp_ddl_create_table"
end
else
    print "Failed to create sp_ddl_create_table"
go

go

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用表引用获取mysql查询?

Sybase使用数字说明符选择查询表

如何使用SQL查询在dbtable中定义表?

SQL Server-如何使用表构造函数定义查询

如何从Cognos获取查询定义?

如何使用SQL查询联接表并获取绑定列数?

如何使用子查询获取所有关系表

如何使用存储过程获取查询结果(将一个表中的项目数量转换为第二个表中定义的我的单位)

如何使用已定义的表获取所需的记录

如何查找触发器以及在 Sybase ASE 16.0 中的表上定义的模式?

使用SailsJS模型定义查询的获取属性

如何从Wordpress表中获取SQL查询

如何从SQL查询中获取表名?

如何编写linq查询以获取结果表?

如何获取sybase表的列名及其数据类型和排序依据?

如何使用查询创建表?

而不是使用pyspark获取多个表,如何使用jdbc执行联接查询

Wordpress:如何使用自定义查询获取不包含特定类别的帖子

如何使用ajax(WordPress)添加更多负载以获取自定义查询数据?

如何使用猫鼬在聚集查询项目中获取对象的自定义数组

使用实体框架,如何创建查询以从数据库中获取所有表的列名

如何使用休眠查询语言基于单个日期从表中获取列表

如何使用日期范围从表中查询多个详细信息来获取数据?

如何使用查询从DynamoDb中的表中获取所有记录

我如何使用mysql中的单个查询从两个表中获取数据

SQLAlchemy:在使用all()查询表的单列时如何在列表中获取结果?

如何使用SQL闭合表模式获取所有兄弟姐妹(不带子查询!)

在Rails活动记录查询中使用联接时如何获取第二张表的结果

如何从使用SQL Server和FIREDAC的联接查询中的列中获取表名?