私はSQL Serverが初めてです。 SQL Server Management Studioを介してデータベースにログインしています。
ストアドプロシージャのリストがあります。ストアドプロシージャコードを表示するにはどうすればよいですか?
ストアドプロシージャを右クリックしても、view contents of stored procedure
などのオプションはありません。
ありがとう。
ストアドプロシージャを右クリックして、[ストアドプロシージャのスクリプト CREATE to New Query Editor Window/Clipboard/File]を選択します。
名前を右クリックして変更することもできます
一度に複数のprocが必要な場合は、ストアドプロシージャフォルダーをクリックし、Ctrlキーを押しながらF7キーを押して、必要なものをすべて選択し、右クリックしてscript stored procedure asを選択します作成
私はこれがストアドプロシージャコードを表示するより良い方法だと思います:
sp_helptext <name of your sp>
オプションはModify
と呼ばれます:
これにより、ストアドプロシージャのT-SQLコードがALTER PROCEDURE ...
リードイン付きの新しいクエリウィンドウに表示されるため、プロシージャを簡単に変更または修正して更新できます。
これは、ストアドプロシージャの定義を表示する別の方法です
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Your_SP'))
以下のクエリを使用してください:-
SELECT object_definition(object_id) as [Proc Definition]
FROM sys.objects
WHERE type='P'
オブジェクトエクスプローラーを使用し、ストアドプロシージャを新しいクエリエディターウィンドウおよびその他のクエリにスクリプト化することを推奨するその他の回答は、確実なオプションです。
個人的には、以下のクエリを使用してストアドプロシージャの定義/コードを1行で取得するのが好きです(Microsoft SQL Server 2014を使用していますが、SQL Server 2008以降で動作するはずです)
SELECT definition
FROM sys.sql_modules
WHERE object_id = OBJECT_ID('yourSchemaName.yourStoredProcedureName')
Sys.sql_modulesの詳細:
sp_helptext 'your_sp_name'
Management Studioのデフォルトでは、結果はグリッドビューで表示されます。テキストビューで表示する場合は、次の場所に移動します。
クエリ->結果へ->テキストへの結果
またはCTRL + Tを押してから実行します。
私のように「変更」する許可がない場合は、「SQL Search」(redgateによる)と呼ばれる無料のツールをインストールできます。 SPにあることがわかっているキーワードを検索するために使用し、キーワードが強調表示されたSPコードのプレビューを返します。
独創的!次に、このコードを自分のSPにコピーするか、表示します
次のクエリを使用して、データベースに保存されているすべてのオブジェクトコードを表示できます。
USE [test] --Database Name
SELECT
sch.name+'.'+ob.name AS [Object],
ob.create_date,
ob.modify_date,
ob.type_desc,
mod.definition
FROM
sys.objects AS ob
LEFT JOIN sys.schemas AS sch ON
sch.schema_id = ob.schema_id
LEFT JOIN sys.sql_modules AS mod ON
mod.object_id = ob.object_id
WHERE mod.definition IS NOT NULL --Selects only objects with the definition (code)