2009-05-01 24 views
12

Làm thế nào tôi có thể nhận được sqsh để cho tôi biết bảng nào có sẵn?Tương đương với "Hiển thị bảng" trong SQSH

+0

thể trùng lặp của [? Từ một cơ sở dữ liệu Sybase, làm thế nào tôi có thể nhận được mô tả bảng (tên trường và các loại)] (http: // stackoverflow .com/questions/1429898/from-a-sybase-database-how-i-can-get-table-description-field-tên-và-loại) – nslntmnx

Trả lời

5

Sau một số sự giúp đỡ từ this site và một số thử và sai:

select table_name from systable 
go 

Painfully đủ, sp_help không tồn tại trong phiên bản của tôi.

+1

Điều này có vẻ là cụ thể cho một phiên bản Sybase nhất định vì nó không ' t làm việc trên ASE. Bạn đang sử dụng IQ? – VolkA

2

Tôi không quen với systables. Hương vị của Sybase bạn đang chạy là gì? ASA có lẽ?

Vui lòng tìm thêm một hàm sqsh (mà bạn có thể đặt vào .sqshrc) để trình bày một số truy vấn bảng danh mục ASE (Adaptive Server Enterprise) và sử dụng thư viện thủ tục lưu trữ hệ thống Ed Barlow http://www.edbarlow.com/gem/procs_only/index.htm để tìm hiểu các đối tượng nằm trong cơ sở dữ liệu.

 
# Shorthand for sp__helptext or sp__revtable 
\func -x ? 
    IF EXISTS (SELECT * FROM sysobjects WHERE name = \\'${1}\\') 
     BEGIN 
     DECLARE @type VARCHAR(3) 
     SELECT @type = type FROM sysobjects WHERE name = \\'${1}\\' 
     IF @type IN (\\'U\\') 
      exec sp__revtable ${1} 
     ELSE 
      exec sp__helptext ${1} 
     END 
    ELSE 
     -- default to sp__ls (which can list partial matches) if an exact match wasn't found in sysobjects 
     exec sp__ls ${1} 
    go 
\done 

+0

chọn tên từ sysobjects trong đó xtype = 'U' –

7

sp_tables có hoạt động cho bạn không? Bạn đang cố gắng hoàn thành tab khi tạo truy vấn?

+0

** sp_help [] **, ** sp_helpdb [] **, cũng ** sp_tables ** và ** sp_columns [] **. – gavenkoa

5

Mới hơn phiên bản sử dụng sysobjects:

SELECT name FROM sysobjects WHERE type = 'U'; 

Kính trọng,

Các vấn đề liên quan