[英]SQL Server stored procedure type: Insert, Delete, Update, or Select
我正在sys.procedures
上對SQL Server 2012進行一些查詢, sys.procedures
可以查看數據庫中的所有存儲過程。
SELECT * FROM SYS.PROCEDURES
我發現了一些定義
SELECT * FROM SYS.SQL_MODULES
sys表上是否有任何列,或者什么告訴我該存儲過程是否是一種類型:選擇,插入,刪除或更新?
要回答您的問題,沒有,沒有一欄讓您知道其他人提到的內容,但是您可能可以使用類似的內容給您一個大概的想法……同樣,這也不是100%正確的
select sm.definition,
CASE WHEN
sm.definition like '%SELECT%' THEN 1 ELSE 0
END AS 'HasSelect',
CASE WHEN
sm.definition like '%Insert into%' THEN 1 ELSE 0
END AS 'HasInsert',
CASE WHEN
sm.definition like '%UPDATE TABLE%' THEN 1 ELSE 0
END AS 'HasUpdate',
CASE WHEN
sm.definition like '%DELETE FROM%' THEN 1 ELSE 0
END AS 'HasDelete',
CASE WHEN
sm.definition like '%Drop%' THEN 1 ELSE 0
END AS 'HasDrop'
FROM sys.procedures p
INNER JOIN sys.sql_modules sm
ON p.object_id = sm.object_id
沒有專欄。 因為您的過程可以完成所有這些事情,所以嘗試創建一個滿足該需求的列是沒有用的。 但是您可以將這些條件放入WHERE子句中。
SELECT DISTINCT
o.name AS Object_Name,
o.type_desc
FROM sys.sql_modules m
JOIN sys.objects o ON m.object_id = o.object_id
WHERE o.name Like '%INSERT%'
OR o.name Like '%SELECT%';
元數據中沒有任何內容可以告訴您存儲過程的功能。 存儲過程沒有“類型”,單個存儲過程可以在同一過程中多次插入,更新,刪除和選擇所有內容
如果您對這些內容感興趣,建議您命名該過程以包含元數據,例如InsertSalesRecord或DeleteMonthlyInventory
不能。存儲過程可以容納許多插入,更新,刪除或選擇語句。 它甚至可以只添加兩個數字而無需任何數據庫操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.