2016-10-16 21 views
0

私はSyBaseをクエリし、ストアドプロシージャのパラメータとデータ型を返す必要があります。私はそれを行うSQLクエリを探しています。私は使用できるSQL Serverでストアドプロシージャのパラメータとデータ型をSyBaseで取得するSQLクエリ

select parameters.name as fieldname, types.name as field type 
from sys.parameters 
inner join sys.type on parameters.system_type_id = types.system_type_id 
where object_id = <id> 
and types.name <> 'sys name' 
order by filename 

だから、私はSyBaseで同様のことをするつもりです。私はストアドプロシージャのIDを知っている、私はちょうどそのパラメータ情報を抽出する必要があります。

答えて

0

私は自分自身でこれを動作させることができました。 SQLを使用して、ストアドプロシージャのパラメータとデータ型を取得します。

SELECT col.name AS fieldname, ty.name AS fieldtype 
FROM sysobjects t 
JOIN syscolumns col ON t.id=col.id 
JOIN systypes ty ON ty.usertype=col.usertype 
WHERE t.id={key} 

テーブルに同じものを取得する。

SELECT col.name AS fieldname, ty.name AS fieldtype, 
CASE WHEN col.name IN (
index_col(object_name(si.id), indid, 1), 
index_col(object_name(si.id), indid, 2), 
index_col(object_name(si.id), indid, 3), 
index_col(object_name(si.id), indid, 4), 
index_col(object_name(si.id), indid, 5), 
index_col(object_name(si.id), indid, 6), 
index_col(object_name(si.id), indid, 7), 
index_col(object_name(si.id), indid, 8) 
) THEN 1 ELSE 0 END AS isPK 
FROM sysobjects t 
JOIN syscolumns col ON t.id=col.id 
JOIN systypes ty ON ty.usertype=col.usertype 
LEFT JOIN sysindexes si ON si.id=t.id AND si.name LIKE '%pk%' 
WHERE t.id={key} 
関連する問題