カタログ ビューを使用sql-server'sして、テーブルを簡単に生成/再作成できます。次のようなクエリを実行できます
select * from INFORMATION_SCHEMA.TABLES -- Get all the table names
このような列があります..
select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'Publishers' -- Get the cols for publisher table
sys.objectsこのように inおよび/または inでクエリを実行sys.foreign_keysして、テーブル、すべての列、それらが null 可能かどうか、およびその他すべて ( など) に関する完全な情報を取得できます。その情報があれば、primary keyそのcheck constraintsテーブルを簡単に再作成できます。全体 (制約とすべてを含む)。それは悪い考えのように聞こえるかもしれませんし、これを行う他の方法があるかもしれませんが、それが良い習慣であるかどうかの問題ではありません. 私が知りたいのは、 に関するすべての情報を含むカタログはありstored procedure(s)ますか?
このようなprocがあるとします
ALTER PROCEDURE [dbo].[proc_Author]
-- Add the parameters for the stored procedure here
@Flag INT = 1,
@AuthorName NVARCHAR(50) = '',
@AuthorId int = 0,
@Address NVARCHAR(50) = ''
AS
BEGIN
IF (@Flag = 1)
-- INSERTS INTO TABLE DATA --
BEGIN
INSERT INTO Authors VALUES (@AuthorName, @Address);
END
ELSE IF (@Flag = 2)
-- DELETES THE AUTHOR --
BEGIN
DELETE FROM Authors
Where AuthorID = @AuthorId
END
END
再構築できるように、クエリを実行しsystem catalogて構造を知る方法はありますProc_Authorか? をクエリできることはわかっていますsys.proceduresが、些細な詳細しか表示されないため、実行しました
select * from INFORMATION_SCHEMA.PARAMETERS
select * from sys.parameters
私のプロシージャが使用しているパラメータに関する情報を提供してくれますが、proc情報から構築したい場合は十分ではありません。それで、私は何かが欠けていますか?構築に必要なすべての情報を から取得できcatalog viewsますか? じゃあどっち?そうでない場合、 astored procがコンパイルされた後、ステートメント (selectなどinsert) は実際にディスクのどこに保存されますか? 私が開いてSSMS右クリックModifyして手順を選択すると、新しいクエリウィンドウが開きます。そのため、この構造が何であるかを知るためにprocどこかから見ている必要がありますか? どうすれば入手できますか?disk/catalog viewsproc