簡體   English   中英

有沒有一種方法可以用特定數據庫中所有存儲過程的名稱創建表

[英]Is there a way to create a table with the names of all the stored procedures in a particular database

我有一個數據庫,該數據庫在該特定數據庫中有一個過程存儲。 任何人都可以用一種方法將所有存儲過程的名稱制成一個表,而不是手動鍵入每個表。 我將如何編寫查詢? 還有其他方法嗎?

Sean Lange是正確的,您已經在sys.procedures表中有了數據。 如果您仍要創建表:

SELECT * INTO [Table_Name] FROM sys.procedures

有很多方法可以獲取存儲過程列表

這里有3種方法:第一種是舊方法,在sql server 2000時

select name,create_date,modify_date from sys.procedures 
select name,create_date,modify_date from sys.objects  where type='p'
select name,crdate,refdate from sysobjects where xtype='p'

如果除了名稱之外,您還想獲取更多信息,也可以使用該名稱。 例如,這里有一個查詢,它為數據庫中的所有存儲過程提取數據庫,模式,過程,定義,創建日期和最后修改日期。 您可以將其與對sys.sp_MSforeachdb存儲proc的調用結合起來,為服務器上的每個數據庫創建一個表。

SELECT
    DB_NAME() AS [Database],
    s.name AS [Schema],
    p.name AS [Procedure],
    ISNULL(d.definition,'***ENCRYPTED PROCEDURE***') AS [Definition],
    p.create_date,
    p.modify_date
INTO [Table_Name]
FROM sys.procedures AS p
JOIN sys.sql_modules AS d on p.object_id = d.object_id
JOIN sys.schemas AS s on p.schema_id = s.schema_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM