SQL技巧 查詢某個表關聯的所有儲存過程

2022-01-16 06:52:52 字數 1631 閱讀 7951

關鍵字:#sql技巧#

在開發過程中,可能需要更改某乙個表的資料結構,或者更新資料。但你又不太清楚會造成什麼影響,遲遲不敢下手進行調整。筆者[快樂it]最近在做erp k3與oa藍凌介面時就遇到了這個問題,那是否有辦法知道我們所修改的table有哪些儲存過程引用了,哪些檢視關聯了即將要修改的表呢。

答案是肯定的,奉上**:

select b.name,a.definition

from sys.all_sql_modules a

inner join sys.objects b

on a.object_id = b.object_id

where b.type = 'p'

and a.definition like '%'+@keyword+'%'

sql查詢與表關聯的儲存過程的結果為:

​大家看到沒有?我們即將修改的表[icstockbill]竟然有91個儲存過程引用了這個表,如果靠手工去查詢是該是一項多麼大的工程啊。 但問題又來了,如何修改這錶結構? 謹慎的做法是:只能新增字段,不能修改字段。

答案很簡單,就是將type='p' 改成type='v'即可:

select b.name,a.definition

from sys.all_sql_modules a

inner join sys.objects b

on a.object_id = b.object_id

where b.type = 'v'

and a.definition like '%'+@keyword+'%'

通過表名查詢檢視的結果為:

sql查詢資料庫中包含某個值的所有表

統共分三步 第1步 建立乙個表,用來儲存包含該值的資料表和列名 create table dest table name varchar 60 column name varchar 60 第2步 拼接insert語句 select concat insert into dest select ta...

查詢某錶的所有與之關聯的表以及關聯字段

select b.table name 主鍵表名,b.column name 主鍵列名,a.table name 外來鍵表名,a.column name 外來鍵列名 from select a.constraint name,b.table name,b.column name,a.r constr...

sql server 查詢某個表的所有觸發器名稱

查出所有用到某個表的sql select from sysobjects where xtype tr select from sysobjects where xtype tr and parent obj object id 表名 xtype char 2 物件型別。可以是下列物件型別中的一種 ...