システムカタログビューのsys.columns
(およびsys.all_columns
)にテーブル、テーブル値関数(インライン、SQLマルチステートメント、およびSQLCLR)、およびビューと同じように保持されます。
SELECT obj.[name], obj.[type_desc], col.[name]
FROM sys.objects obj
INNER JOIN sys.columns col
ON col.[object_id] = obj.[object_id]
ORDER BY obj.[type_desc], obj.[name], col.[name];
完全なデータ型名を取得するには、sys.types
に参加する必要があります。
- (アセンブリ内SQLCLR法用)T-SQLラッパーオブジェクトは、あなたが書いたスクリプトによって作成された場合は、次の
しかし、以来、あなたがやっているようなものをスクリプティング非常に少ない点がありますCREATE
ステートメントが既にあります。
- T-SQLラッパーオブジェクトが(Visual Studioの有無にかかわらず)SSDTによって作成されている場合は、「作成」スクリプトが既に作成されています各ビルド時に)、インクリメンタルな "publish"スクリプトを実行します。
いずれの場合も、これらのオブジェクトは、既に用意が必要なT-SQLスクリプトから作成されています。私は、あなたがオブジェクトを持っていたデータベースを手渡され、何らかの理由で配備スクリプトが利用できないと仮定しない限り、
C#コードに基づいてfunc/procのT-SQL定義を作成するツールはありますか?
データベースまたはDLL /アセンブリからですか?データベースから任意のタイプのオブジェクトをスクリプト化するために使用できるツールがいくつかあります。また、.NET SMOクラスを使用して、データベースから定義をスクリプト化することもできます。 DLL /アセンブリをスキャンする場合は、.NET Reflectionクラスを使用して各メソッドを反復処理し、SqlFunction
、SqlProcedure
、SqlFacet
属性/デコレータを調べる必要があります。
>何らかの理由で展開スクリプトを使用できません。 – DueGe
シンプル - thx :-) 2番目の質問は、ソースコード(C#)またはDLLを指します。 – DueGe