2

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

这给出了当前数据库,但我不能指定特定的数据库

select name from sysobjects where type = 'U'

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

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

有没有人知道该怎么做,并且还通过名称中的某些字符串过滤表的名称,例如只显示名称中带有SASSA的表?

4

3 回答 3

4

使用sp_tables

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

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

表和视图

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

执行 sp_tables '%'

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

exec sp_tables '%', '%', 'master', "'TABLE'"

仅按数据库和所有者/模式过滤表,例如 master 和 dbo:

exec sp_tables '%'、'dbo'、'master'、“'TABLE'”

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

于 2013-08-30T08:31:21.063 回答
2

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

replace actual database name from db_name.

type 'U' is for userdefined table.

Thanks, Gopal

于 2013-08-30T10:24:40.320 回答
1
use <database_name>
go

select * from sysobjects where type='U'
go

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

于 2015-05-26T09:39:51.740 回答