0

ドロップ/作成スクリプトを動的に作成したい。そのために、作成部分を次のように計算できます。

SELECT definition FROM sys.sql_modules

私のクエリ-DropStoredProcPartに何か提案できますか...

ストアドプロシージャの作成/削除スクリプトを試しています

4

1 に答える 1

5
DECLARE @proc NVARCHAR(511); -- presumably a parameter
SET @proc = N'dbo.sp_help_job';


DECLARE @sql NVARCHAR(MAX);

SELECT @sql = N'DROP PROCEDURE ' + @proc + ';
GO
' + definition
FROM sys.sql_modules
WHERE [object_id] = OBJECT_ID(@proc);

PRINT @sql;
-- EXEC sp_executesql @sql;

OBJECTPROPERTYPankajの結合と方法の比較:

ここに画像の説明を入力してください

拡大するにはクリックしてください:

ここに画像の説明を入力してください

2番目のスクリーンショットからの出力をコピーして使用しようとしないでください。いったいなぜあなたはこれをするのですか?これは、クエリのパラメータ化されたバージョンのSQLServerの内部表現です。私があなたに見せようとしていることであなたが説明できないことをしていないように、コードを貼り付けましょう:

SELECT OBJECT_NAME(m.[object_id]), m.[object_id]
FROM sys.all_sql_modules AS m
INNER JOIN sys.all_objects AS o
ON m.[object_id] = o.[object_id]
WHERE o.type = N'P';

SELECT OBJECT_NAME([object_id]), [object_id]
FROM sys.all_sql_modules 
WHERE OBJECTPROPERTY([object_id], 'IsProcedure') = 1;

それらを実行し、プロファイラーで結果を確認します。私はまだパンカイを「間違っている」のでしょうか?今日はこれ以上みんなの時間を無駄にしませんか?

于 2012-08-20T17:50:08.847 に答える