Sql Server では、SP または UDF の変更を選択すると、クエリ ウィンドウにオブジェクトの変更クエリが読み込まれます。これらのクエリはシステム テーブルでアクセスできるので、alter ステートメントをどこかに保存できますか? syscomments にはいくつかのオブジェクトがありますが、すべてではないようです。
ありがとう
Sql Server では、SP または UDF の変更を選択すると、クエリ ウィンドウにオブジェクトの変更クエリが読み込まれます。これらのクエリはシステム テーブルでアクセスできるので、alter ステートメントをどこかに保存できますか? syscomments にはいくつかのオブジェクトがありますが、すべてではないようです。
ありがとう
syscomments は使用しないでください。 issyscomments.text
でnvarchar(4000)
あり、その結果、より長いものはすべて切り捨てられます。
isであるsys.sql_modules
ため使用します。長いコードは切り捨てられません。 definition
nvarchar(max)
これを使用して、特定のプロシージャ、ビュー、または関数のテキストを表示します。
SELECT * FROM sys.sql_modules WHERE object_id=object_id('YourProcedure')
これを使用して、任意のプロシージャ、ビュー、または関数の名前、型、およびテキストを取得します。
SELECT DISTINCT
o.name AS Object_Name,o.type_desc, m.definition
FROM sys.sql_modules m
INNER JOIN sys.objects o ON m.object_id=o.object_id
WHERE m.object_id=object_id('CPT_SP_IRA_ComboBox_IncidentStatus')
何を求めているのか完全にはわかりませんが、次のクエリでストアド プロシージャを確認できます。
SELECT SO.Type,SO.Name,SC.Text
FROM sysobjects SO (NOLOCK)
INNER JOIN syscomments SC (NOLOCK) on SO.Id = SC.ID
AND SO.Type = 'P'
ORDER BY SO.Name
さまざまなオブジェクト タイプを探している 場合は、さまざまなタイプのsys.sysobjectsを参照してください。