1

オブジェクトエクスプローラーまたはsp_helptextを使用して、SQLServer2005のシステムビューとプロシージャのテキストを表示したいと思っています。

実際、私はSQL Server 2000のバックグラウンドから来ています。ここでは、SQL Server 2000 Enterprise Managerを直接使用してビューのコードとストアドプロシージャを取得する機能がありますが、それでもSQLServer2005の管理でこの機能を見つけることができません。 Studioであり、SQLServer2005でビューとプロシージャのテキストを取得するための同じ機能を引き続き探しています。

親切にこれで私を助けてください。

4

4 に答える 4

3

SQL Server Management Studio にアクセスできますか? 現在は sys.sp_helptext であり、オブジェクト ブラウザーで master --> Programmability --> Stored Procedures --> System Stored Procedures で参照し、次のように実行できます。

exec sys.sp_helptext ObjectName

探しているすべての情報は、すべてのビュー、ルール、デフォルト、トリガー、CHECK 制約、DEFAULT 制約、およびストアド プロシージャの定義を格納するsyscommentsテーブルにあります。SQL定義文は「テキスト」列に格納されます。

select text from syscomments  where id =
OBJECT_id('objectname')
order by colid
于 2009-01-11T07:34:42.697 に答える
1

この Stackoverflow の投稿には、(とりわけ) リバース エンジニアが定義を表示するデータベース リバース エンジニアリング スクリプトがあります。スクリプトから

-- This generates view definitions 
--
select definition + char(10) + 'go' + char(10)
  from sys.sql_modules c
  join sys.objects o
    on c.object_id = o.object_id
  join #views o2
    on o.object_id = o2.object_id

#viewsスクリプトの前半で、ダンプするビューのリストが取り込まれていることに注意してください。特定のスキーマを選択するには (これもスクリプトから)

select o.name
      ,o.object_id
  into #views
  from sys.objects o
  join sys.schemas s
    on s.schema_id = o.schema_id
 where o.type in  ('V')
   and s.name = @schema

ストアド プロシージャを取得するには、「P」を置き換えます。関数を取得するには、「FN」または「TF」に置き換えます

masterデータベースでは、システム ストアド プロシージャの定義は、sys.system_views'sys.system_objects , 'sys.system_columns、およびsys.system_sql_modules. リバース エンジニアリング スクリプトのクエリは、これらのテーブルを使用して、システム アイテムの定義を取得するようにかなり簡単に適応させることができます。

于 2009-01-11T09:44:15.697 に答える
0

プロシージャを定義するテキストだけを見たい場合:

ストアド プロシージャを右クリックし、[変更] を選択します。これにより、ストアド プロシージャを定義する SQL が表示されます。

または: 右クリックし、[ストアド プロシージャをスクリプト化] として、[CREATE To]、[新しいクエリ エディター ウィンドウ] を選択します。

他の回答はより高度ですが、おそらくあなたは簡単な質問をしていると思いました:)

于 2009-01-11T09:53:50.717 に答える
0

すべての動的管理ビューを一覧表示する方法は次のとおりです。

SELECT * FROM sysobjects
WHERE name LIKE 'dm_%'
order by name

残念ながら、これらに対して sp_helptext を実行しても、あまり効果がありません。例えば、

exec sp_helptext   N'sys.dm_os_sys_info'

戻り値:

CREATE VIEW sys.dm_os_sys_info AS
    SELECT *
    FROM OpenRowset(TABLE SYSINFO)

私が試したものはすべて同じ結果をもたらしました。

于 2009-01-11T10:41:33.787 に答える