1. 程式人生 > >sqlserver查詢資料庫所有儲存過程、觸發器、索引資訊

sqlserver查詢資料庫所有儲存過程、觸發器、索引資訊

1. 查詢所有儲存過程

select Pr_Name as [儲存過程], [引數]=stuff((select ','+[Parameter]
from (
select Pr.Name as Pr_Name,parameter.name +' ' +Type.Name + ' ('+convert(varchar(32),parameter.max_length)+')' as Parameter
from sys.procedures Pr left join
sys.parameters parameter on Pr.object_id = parameter.object_id
inner join sys.types Type on parameter.system_type_id = Type.system_type_id
where type = 'P'
) t where Pr_Name=tb.Pr_Name for xml path('')), 1, 1, '')
from (
select Pr.Name as Pr_Name,parameter.name +' ' +Type.Name + ' ('+convert(varchar(32),parameter.max_length)+')' as Parameter
from sys.procedures Pr left join
sys.parameters parameter on Pr.object_id = parameter.object_id
inner join sys.types Type on parameter.system_type_id = Type.system_type_id
where type = 'P'
)tb
where Pr_Name not like 'sp_%' --and Pr_Name not like 'dt%'
group by Pr_Name
order by Pr_Name

2. 儲存過程資訊查詢

 select Pr.Name as Pr_Name,parameter.name,T.Name,convert(varchar(32),parameter.max_length) as 引數長度,parameter.is_output as 是否是輸出引數,parameter.*
 from sys.procedures Pr left join
 sys.parameters parameter on Pr.object_id = parameter.object_id
 inner join sys.types T on parameter.system_type_id = T.system_type_id
 where Pr.type = 'P' and Pr.Name like 'order_%' and T.name!='sysname' order by Pr.Name


3. 顯示儲存過程內容

SELECT TEXT FROM syscomments WHERE id=object_id('SP_NAME')

SP_HELPTEXT 'SP_NAME'

4. 查詢所有觸發器

select triggers.name as [觸發器],tables.name as [表名],triggers.is_disabled as [是否禁用],
triggers.is_instead_of_trigger AS [觸發器型別],
case when triggers.is_instead_of_trigger = 1 then 'INSTEAD OF'
when triggers.is_instead_of_trigger = 0 then 'AFTER'
else null
end as [觸發器型別描述]
from sys.triggers triggers
inner join sys.tables tables on triggers.parent_id = tables.object_id
where triggers.type ='TR'
order by triggers.create_date

5. 查詢所有索引

select indexs.Tab_Name as [表名],indexs.Index_Name as [索引名] ,indexs.[Co_Names] as [索引列],
Ind_Attribute.is_primary_key as [是否主鍵],Ind_Attribute.is_unique AS [是否唯一鍵],
Ind_Attribute.is_disabled AS [是否禁用]
from (
select Tab_Name,Index_Name, [Co_Names]=stuff((select ','+[Co_Name] from
( select tab.Name as Tab_Name,ind.Name as Index_Name,Col.Name as Co_Name from sys.indexes ind
inner join sys.tables tab on ind.Object_id = tab.object_id and ind.type in (1,2)
inner join sys.index_columns index_columns on tab.object_id = index_columns.object_id and ind.index_id = index_columns.index_id
inner join sys.columns Col on tab.object_id = Col.object_id and index_columns.column_id = Col.column_id
) t where Tab_Name=tb.Tab_Name and Index_Name=tb.Index_Name for xml path('')), 1, 1, '')
from (
select tab.Name as Tab_Name,ind.Name as Index_Name,Col.Name as Co_Name from sys.indexes ind
inner join sys.tables tab on ind.Object_id = tab.object_id and ind.type in (1,2)
inner join sys.index_columns index_columns on tab.object_id = index_columns.object_id and ind.index_id = index_columns.index_id
inner join sys.columns Col on tab.object_id = Col.object_id and index_columns.column_id = Col.column_id
)tb
where Tab_Name not like 'sys%'
group by Tab_Name,Index_Name
) indexs inner join sys.indexes Ind_Attribute on indexs.Index_Name = Ind_Attribute.name
order by indexs.Tab_Name

相關推薦

sqlserver查詢資料庫所有儲存過程觸發器索引資訊

1. 查詢所有儲存過程 select Pr_Name as [儲存過程], [引數]=stuff((select ','+[Parameter] from ( select Pr.Name as Pr

oracle查詢資料庫儲存過程索引檢視等的數量

select count(1) from user_objects where object_type = 'PROCEDURE' select count(1) from user_objects where object_type = 'INDEX' select co

MYSQL資料庫實驗(儲存過程觸發器)

個人配置說明:5.7.24 MySQL Community Server (GPL),環境CentOS 7 1.MYSQL 不支援語句觸發(for each statement),只支援行觸發(for each row,新舊資料通過關鍵字new和old區別) 實驗: 資料庫

sqlserver查詢資料庫中包含某個欄位的所有表和所有儲存過程

  1、查詢包含某欄位的所有表 1 2 3 4 5 6 select object_name(id) objName,Name as colName from syscolumns where 

基於sqlserver的常用查詢檢視觸發器儲存過程用法

首先在這申明,sqlserver是不區分大小寫的。 SqlServer插入語句 insert into <表名> [<屬性1><屬性2><屬性3>] values(<常量1><常量

sql server 查看錶檢視觸發器儲存過程等組成sql查詢語句

1. 檢視使用者表 select name from sys.tables select name from sys.objects where type='U' select name from sysobjects where xtype='U'   其中type

查詢資料庫儲存過程中包含某字串的所有儲存過程名稱

select name from sysobjects o, syscomments s where o.id = s.id and text like '%querytext%' and o.xtype = 'P' ORDER BY name 將querytext替

資料庫儲存過程觸發器,遊標,函式

MySQL5 中添加了儲存過程的支援。  大多數SQL語句都是針對一個或多個表的單條語句。並非所有的操作都這麼簡單。經常會有一個完整的操作需要多條才能完成。  儲存過程簡單來說,就是為以後的使用而儲存的一條或多條MySQL語句的集合。可將其視為批檔案。雖然他們的

sql在所有儲存過程查詢包含某字串的執行語句

直接在查詢分析器中執行以下程式碼就行: 方法一) select name from sysobjects o, syscomments s where o.id = s.id and text like '%test%' and o.xtype = 'P'   方法二)

檢視觸發器事務儲存過程函式,流程控制

檢視 檢視是一個虛擬表(非真實存在),其本質是【根據SQL語句獲取動態的資料集,併為其命名】,使用者使用時只需使用【名稱】即可獲取結果集,可以將該結果集當做表來使用。 使用檢視我們可以把查詢過程中的臨時表摘出來,用檢視去實現,這樣以後再想操作該臨時表的資料時就無需重寫複雜的sql了,直接去檢視中查詢即可,

mysql-檢視觸發器事務儲存過程函式

目錄 檢視 觸發器 事務 儲存過程 流程控制 一、檢視 檢視是由查詢結果構成的一張虛擬表,和真實的表一樣,帶有名稱的列和行資料 強調:檢視是永久儲存的,但是檢視儲存的不是資料,只是一條sql語句 檢視的特點: 檢視的列可以來自不同的表,是表的抽象和邏輯意義上建立的新關係。 

mysql小白之旅——進階篇2——儲存過程事件觸發器事務分散式事務

14.儲存過程的寫法 1)定義條件和處理 --CONDITION --HANDLER 2)游標 CURSOR --DECLARE --OPEN --FETCH --CLOSE 3)流程控制 --IF語句 --CASE語句 --LOOP語句 --LEAVE語句  相當於br

MySQL:檢視觸發器儲存過程事務

檢視: 檢視,虛擬表 建立虛擬表: # 語法: # create view 虛擬表名稱 as 虛擬表; create view course_and_teacher as select * from course inner join teacher on course.teacher_id =

檢視儲存過程函式觸發器事件

儲存過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的一個重要物件,任何一個設計良好的資料庫應用程式都應該用到儲存過程。函式l過程不必返回值l函式必須返回值l過程可

利用儲存過程觸發器來管理資料庫

本文主要介紹如何在資料庫後臺利用儲存過程,觸發器來管理資料庫的技術,並以Delphi做前臺,SQL Server做後臺的模式給出具體的實現程式碼。 一、SQL互動式資料庫查詢語言 互動式資料庫查詢語言SQL中有關表操作基本的SQL語句有如下四種:(下面分別出給四種語句的語法形式及其說明) (1)查詢表命令

從機房重構中學習資料庫——儲存過程觸發器

      開門見山,我也是在機房中學習使用儲存過程,看來大家的部落格,慢慢的使用,接觸了一段時間還是有點模糊。簡單總結一下。                                    

修改MySQL儲存過程函式事件觸發器檢視的DEFINER

#修改儲存過程、函式、事件、觸發器、檢視的 DEFINER select definer from mysql.proc; update mysql.proc set definer='[email protected]%'; select DEFINER fro

【MYSQL筆記3】MYSQL過程式資料庫物件之儲存過程的呼叫刪除和修改

mysql從5.0版本開始支援儲存過程、儲存函式、觸發器和事件功能的實現。 我們以一本書中的例題為例:建立xscj資料庫的儲存過程,判斷兩個輸入的引數哪個更大。並呼叫該儲存過程。 (1)呼叫 首先,建立儲存過程(procedure),名為xscj.compar delimiter $$ crea

MySQL之檢視觸發器事務儲存過程

http://www.cnblogs.com/linhaifeng/articles/7495918.html 檢視 ​ 試圖就是一個虛擬表(非真實存在),本質就是【根據sql語句獲取動態的資料集,併為其命名】,使用者使用時只需要使用名稱即可獲取資料集,可將該資料集當作表來使用。 ''' what: 檢

第六篇:檢視觸發器事務儲存過程函式

一 檢視 檢視是一個虛擬表(非真實存在),其本質是【根據SQL語句獲取動態的資料集,併為其命名】,使用者使用時只需使用【名稱】即可獲取結果集,可以將該結果集當做表來使用。 使用檢視我們可以把查詢過程中的臨時表摘出來,用檢視去實現,這樣以後再想操作該臨時表的資料時就無需重寫複雜的sql了,直接去檢視中查詢即