java 获取特定数据库中用户定义的表的列表

wsxa1bj1  于 2023-02-11  发布在  Java
关注(0)|答案(3)|浏览(131)

我需要在Sybase中列出特定数据库中所有表的名称,然后根据名称中的一些字符串过滤这些表名。
这给出了当前数据库,但我不能指定特定的数据库:

select name from sysobjects where type = 'U'

这不仅提供了表,还包括触发器和存储过程:

Select name from sysobjects
WHERE db_name()='pad_orr_db'

是否有人知道如何做到这一点,并通过名称中的一些字符串过滤表的名称,例如,只显示名称中带有SASSA的表?

zkure5ic

zkure5ic1#

使用sp_tables

sp_tables [table_name] [, table_owner] 
    [, table_qualifier][, table_type]

其中 * table_qualifier * 是数据库的名称。
Tables and Views
要获取所有表、视图和系统表,可以执行以下Sybase系统存储过程。
执行sp表" %"
要按数据库仅筛选表(例如master):
执行sp表" %"、" %"、"主表"、"表"
要仅按数据库和所有者/方案筛选表(例如master和dbo):
执行sp_tables " %"、"dbo"、"master"、"TABLE""
若要仅返回视图,请将"'TABLE '"替换为"'VIEW'"。若要仅返回系统表,请将"'TABLE '"替换为"'SYSTEM TABLE'"。

zzlelutf

zzlelutf2#

Select name from db_name..sysobjects where  type ="U"

替换db_name中的实际数据库名称。
类型'U'用于用户定义的表。

4xy9mtcn

4xy9mtcn3#

use <database_name>
go

select * from sysobjects where type='U'
go

这应该列出用户表、存储过程和代理表。

相关问题