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了,直接去檢視中查詢即