Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
336 views
in Technique[技术] by (71.8m points)

sql - Columns used in stored procedure

How to find if a column is used in any insert, update or delete statements in a stored procedure. I used a system query, but was not accurate. Can we check it manually in sql management studio or any query is there?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The easier way is to use RedGate SQL Search.

But, you can build a query using INFORMATION_SCHEMA.ROUTINES and the ROUTINE_DEFINITION if you feel like.

edit:

You can use this

SELECT ROUTINE_NAME, ROUTINE_DEFINITION 
FROM INFORMATION_SCHEMA.ROUTINES 
WHERE ROUTINE_DEFINITION LIKE '%YOUR COLUMN %' 
    AND ROUTINE_TYPE='PROCEDURE'

or if you have more than one column with same name in database, you can use this.

select DISTINCT p.name
from sys.procedures p   
    INNER JOIN sys.sql_dependencies d on p.object_id = d.object_id
    INNER JOIN sys.tables t on t.object_id = d.referenced_major_id
    INNER JOIN INFORMATION_SCHEMA.ROUTINES R ON R.ROUTINE_NAME = p.name
WHERE R.ROUTINE_DEFINITION like '%YOUR COLUMN %' AND t.name = YOURTABLE 

But, I think you should use Search SQL


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...