如何获取sybase中特定数据库中用户定义表的列表

时间:2013-08-30 08:16:14

标签: java sql sybase

我需要列出sybase中特定数据库中所有表的名称,然后根据名称中的某个字符串过滤这些表名。

这提供了当前数据库但我无法指定特定数据库

select name from sysobjects where type = 'U'

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

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

是否有人知道怎么做,并且还用名称中的某个字符串过滤表名,例如只显示名称中带有 SASSA 的表?

3 个答案:

答案 0 :(得分:4)

使用sp_tables

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

其中* table_qualifier *是数据库的名称。

Tables and Views

  

要获取所有表,视图和系统表,请使用以下Sybase   系统存储过程可以执行。

     

exec sp_tables'%'

     

仅按数据库筛选表,例如master:

     

exec sp_tables'%','%','master',''TABLE'“

     

仅按表的数据库和所有者/架构进行过滤,例如,   master和dbo:

     

exec sp_tables'%','dbo','master',''TABLE'“

     

要仅返回视图,请将“'TABLE'”替换为“'VIEW'”。仅返回   系统表,将“'TABLE'”替换为“'SYSTEM TABLE'”。

答案 1 :(得分:2)

从db_name..sysobjects中选择名称,其中type =“U”

从db_name替换实际的数据库名称。

类型'U'用于用户定义的表。

谢谢, 戈帕尔

答案 2 :(得分:1)

use <database_name>
go

select * from sysobjects where type='U'
go

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