カタログ ビューを使用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 views
proc