我需要列出sybase中特定数据库中所有表的名称,然后根据名称中的某个字符串过滤这些表名。
这提供了当前数据库但我无法指定特定数据库
select name from sysobjects where type = 'U'
这提供的不仅仅是表,还包括触发器和存储过程
Select name from sysobjects
WHERE db_name()='pad_orr_db'
是否有人知道怎么做,并且还用名称中的某个字符串过滤表名,例如只显示名称中带有 SASSA 的表?
答案 0 :(得分:4)
使用sp_tables。
sp_tables [table_name] [, table_owner]
[, table_qualifier][, table_type]
其中* table_qualifier *是数据库的名称。
要获取所有表,视图和系统表,请使用以下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
这应该列出用户表,存储过程和代理表。